/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) IFR [EQUIVALENT, 0 ms] (2) HASKELL (3) BR [EQUIVALENT, 0 ms] (4) HASKELL (5) COR [EQUIVALENT, 6 ms] (6) HASKELL (7) LetRed [EQUIVALENT, 0 ms] (8) HASKELL (9) NumRed [SOUND, 0 ms] (10) HASKELL (11) Narrow [SOUND, 0 ms] (12) AND (13) QDP (14) TransformationProof [EQUIVALENT, 30 ms] (15) QDP (16) UsableRulesProof [EQUIVALENT, 0 ms] (17) QDP (18) QReductionProof [EQUIVALENT, 0 ms] (19) QDP (20) TransformationProof [EQUIVALENT, 0 ms] (21) QDP (22) TransformationProof [EQUIVALENT, 0 ms] (23) QDP (24) UsableRulesProof [EQUIVALENT, 0 ms] (25) QDP (26) QReductionProof [EQUIVALENT, 0 ms] (27) QDP (28) InductionCalculusProof [EQUIVALENT, 29 ms] (29) QDP (30) TransformationProof [EQUIVALENT, 0 ms] (31) QDP (32) TransformationProof [EQUIVALENT, 0 ms] (33) QDP (34) UsableRulesProof [EQUIVALENT, 0 ms] (35) QDP (36) TransformationProof [EQUIVALENT, 0 ms] (37) QDP (38) UsableRulesProof [EQUIVALENT, 0 ms] (39) QDP (40) TransformationProof [EQUIVALENT, 0 ms] (41) QDP (42) DependencyGraphProof [EQUIVALENT, 0 ms] (43) QDP (44) UsableRulesProof [EQUIVALENT, 0 ms] (45) QDP (46) TransformationProof [EQUIVALENT, 0 ms] (47) QDP (48) UsableRulesProof [EQUIVALENT, 0 ms] (49) QDP (50) TransformationProof [EQUIVALENT, 0 ms] (51) QDP (52) DependencyGraphProof [EQUIVALENT, 0 ms] (53) QDP (54) UsableRulesProof [EQUIVALENT, 0 ms] (55) QDP (56) TransformationProof [EQUIVALENT, 0 ms] (57) QDP (58) UsableRulesProof [EQUIVALENT, 0 ms] (59) QDP (60) TransformationProof [EQUIVALENT, 0 ms] (61) QDP (62) DependencyGraphProof [EQUIVALENT, 0 ms] (63) QDP (64) UsableRulesProof [EQUIVALENT, 0 ms] (65) QDP (66) TransformationProof [EQUIVALENT, 0 ms] (67) QDP (68) DependencyGraphProof [EQUIVALENT, 0 ms] (69) QDP (70) UsableRulesProof [EQUIVALENT, 0 ms] (71) QDP (72) QReductionProof [EQUIVALENT, 0 ms] (73) QDP (74) TransformationProof [EQUIVALENT, 0 ms] (75) QDP (76) DependencyGraphProof [EQUIVALENT, 0 ms] (77) QDP (78) TransformationProof [EQUIVALENT, 0 ms] (79) QDP (80) TransformationProof [EQUIVALENT, 0 ms] (81) QDP (82) TransformationProof [EQUIVALENT, 0 ms] (83) QDP (84) TransformationProof [EQUIVALENT, 0 ms] (85) QDP (86) TransformationProof [EQUIVALENT, 0 ms] (87) QDP (88) TransformationProof [EQUIVALENT, 0 ms] (89) QDP (90) TransformationProof [EQUIVALENT, 0 ms] (91) QDP (92) DependencyGraphProof [EQUIVALENT, 0 ms] (93) QDP (94) TransformationProof [EQUIVALENT, 0 ms] (95) QDP (96) TransformationProof [EQUIVALENT, 0 ms] (97) QDP (98) DependencyGraphProof [EQUIVALENT, 0 ms] (99) QDP (100) TransformationProof [EQUIVALENT, 0 ms] (101) QDP (102) TransformationProof [EQUIVALENT, 0 ms] (103) QDP (104) TransformationProof [EQUIVALENT, 0 ms] (105) QDP (106) TransformationProof [EQUIVALENT, 0 ms] (107) QDP (108) TransformationProof [EQUIVALENT, 0 ms] (109) QDP (110) TransformationProof [EQUIVALENT, 0 ms] (111) QDP (112) TransformationProof [EQUIVALENT, 0 ms] (113) QDP (114) DependencyGraphProof [EQUIVALENT, 0 ms] (115) QDP (116) TransformationProof [EQUIVALENT, 0 ms] (117) QDP (118) TransformationProof [EQUIVALENT, 0 ms] (119) QDP (120) DependencyGraphProof [EQUIVALENT, 0 ms] (121) QDP (122) TransformationProof [EQUIVALENT, 0 ms] (123) QDP (124) TransformationProof [EQUIVALENT, 0 ms] (125) QDP (126) TransformationProof [EQUIVALENT, 0 ms] (127) QDP (128) TransformationProof [EQUIVALENT, 0 ms] (129) QDP (130) TransformationProof [EQUIVALENT, 0 ms] (131) QDP (132) TransformationProof [EQUIVALENT, 0 ms] (133) QDP (134) TransformationProof [EQUIVALENT, 0 ms] (135) QDP (136) DependencyGraphProof [EQUIVALENT, 0 ms] (137) QDP (138) TransformationProof [EQUIVALENT, 0 ms] (139) QDP (140) TransformationProof [EQUIVALENT, 0 ms] (141) QDP (142) DependencyGraphProof [EQUIVALENT, 0 ms] (143) QDP (144) TransformationProof [EQUIVALENT, 0 ms] (145) QDP (146) TransformationProof [EQUIVALENT, 0 ms] (147) QDP (148) TransformationProof [EQUIVALENT, 0 ms] (149) QDP (150) TransformationProof [EQUIVALENT, 0 ms] (151) QDP (152) TransformationProof [EQUIVALENT, 0 ms] (153) QDP (154) TransformationProof [EQUIVALENT, 0 ms] (155) QDP (156) TransformationProof [EQUIVALENT, 0 ms] (157) QDP (158) DependencyGraphProof [EQUIVALENT, 0 ms] (159) QDP (160) TransformationProof [EQUIVALENT, 0 ms] (161) QDP (162) TransformationProof [EQUIVALENT, 0 ms] (163) QDP (164) TransformationProof [EQUIVALENT, 0 ms] (165) QDP (166) TransformationProof [EQUIVALENT, 0 ms] (167) QDP (168) TransformationProof [EQUIVALENT, 0 ms] (169) QDP (170) TransformationProof [EQUIVALENT, 0 ms] (171) QDP (172) TransformationProof [EQUIVALENT, 0 ms] (173) QDP (174) TransformationProof [EQUIVALENT, 0 ms] (175) QDP (176) TransformationProof [EQUIVALENT, 0 ms] (177) QDP (178) TransformationProof [EQUIVALENT, 0 ms] (179) QDP (180) TransformationProof [EQUIVALENT, 0 ms] (181) QDP (182) TransformationProof [EQUIVALENT, 0 ms] (183) QDP (184) TransformationProof [EQUIVALENT, 0 ms] (185) QDP (186) DependencyGraphProof [EQUIVALENT, 0 ms] (187) QDP (188) TransformationProof [EQUIVALENT, 0 ms] (189) QDP (190) TransformationProof [EQUIVALENT, 0 ms] (191) QDP (192) TransformationProof [EQUIVALENT, 0 ms] (193) QDP (194) TransformationProof [EQUIVALENT, 0 ms] (195) QDP (196) TransformationProof [EQUIVALENT, 0 ms] (197) QDP (198) TransformationProof [EQUIVALENT, 0 ms] (199) QDP (200) TransformationProof [EQUIVALENT, 0 ms] (201) QDP (202) TransformationProof [EQUIVALENT, 0 ms] (203) QDP (204) DependencyGraphProof [EQUIVALENT, 0 ms] (205) QDP (206) TransformationProof [EQUIVALENT, 0 ms] (207) QDP (208) TransformationProof [EQUIVALENT, 0 ms] (209) QDP (210) TransformationProof [EQUIVALENT, 0 ms] (211) QDP (212) TransformationProof [EQUIVALENT, 0 ms] (213) QDP (214) TransformationProof [EQUIVALENT, 0 ms] (215) QDP (216) TransformationProof [EQUIVALENT, 0 ms] (217) QDP (218) TransformationProof [EQUIVALENT, 0 ms] (219) QDP (220) TransformationProof [EQUIVALENT, 0 ms] (221) QDP (222) TransformationProof [EQUIVALENT, 0 ms] (223) QDP (224) TransformationProof [EQUIVALENT, 0 ms] (225) QDP (226) TransformationProof [EQUIVALENT, 0 ms] (227) QDP (228) TransformationProof [EQUIVALENT, 0 ms] (229) QDP (230) TransformationProof [EQUIVALENT, 0 ms] (231) QDP (232) DependencyGraphProof [EQUIVALENT, 0 ms] (233) QDP (234) TransformationProof [EQUIVALENT, 0 ms] (235) QDP (236) TransformationProof [EQUIVALENT, 0 ms] (237) QDP (238) TransformationProof [EQUIVALENT, 0 ms] (239) QDP (240) TransformationProof [EQUIVALENT, 0 ms] (241) QDP (242) TransformationProof [EQUIVALENT, 0 ms] (243) QDP (244) TransformationProof [EQUIVALENT, 0 ms] (245) QDP (246) TransformationProof [EQUIVALENT, 0 ms] (247) QDP (248) TransformationProof [EQUIVALENT, 1 ms] (249) QDP (250) DependencyGraphProof [EQUIVALENT, 0 ms] (251) QDP (252) TransformationProof [EQUIVALENT, 0 ms] (253) QDP (254) TransformationProof [EQUIVALENT, 0 ms] (255) QDP (256) TransformationProof [EQUIVALENT, 0 ms] (257) QDP (258) TransformationProof [EQUIVALENT, 0 ms] (259) QDP (260) TransformationProof [EQUIVALENT, 0 ms] (261) QDP (262) TransformationProof [EQUIVALENT, 0 ms] (263) QDP (264) TransformationProof [EQUIVALENT, 0 ms] (265) QDP (266) TransformationProof [EQUIVALENT, 0 ms] (267) QDP (268) TransformationProof [EQUIVALENT, 0 ms] (269) QDP (270) TransformationProof [EQUIVALENT, 0 ms] (271) QDP (272) TransformationProof [EQUIVALENT, 0 ms] (273) QDP (274) TransformationProof [EQUIVALENT, 0 ms] (275) QDP (276) TransformationProof [EQUIVALENT, 0 ms] (277) QDP (278) DependencyGraphProof [EQUIVALENT, 0 ms] (279) QDP (280) TransformationProof [EQUIVALENT, 0 ms] (281) QDP (282) TransformationProof [EQUIVALENT, 0 ms] (283) QDP (284) TransformationProof [EQUIVALENT, 0 ms] (285) QDP (286) TransformationProof [EQUIVALENT, 0 ms] (287) QDP (288) TransformationProof [EQUIVALENT, 0 ms] (289) QDP (290) TransformationProof [EQUIVALENT, 0 ms] (291) QDP (292) TransformationProof [EQUIVALENT, 0 ms] (293) QDP (294) TransformationProof [EQUIVALENT, 0 ms] (295) QDP (296) DependencyGraphProof [EQUIVALENT, 0 ms] (297) QDP (298) TransformationProof [EQUIVALENT, 0 ms] (299) QDP (300) TransformationProof [EQUIVALENT, 0 ms] (301) QDP (302) TransformationProof [EQUIVALENT, 0 ms] (303) QDP (304) TransformationProof [EQUIVALENT, 0 ms] (305) QDP (306) TransformationProof [EQUIVALENT, 0 ms] (307) QDP (308) TransformationProof [EQUIVALENT, 0 ms] (309) QDP (310) TransformationProof [EQUIVALENT, 0 ms] (311) QDP (312) TransformationProof [EQUIVALENT, 0 ms] (313) QDP (314) TransformationProof [EQUIVALENT, 0 ms] (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) DependencyGraphProof [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) DependencyGraphProof [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) TransformationProof [EQUIVALENT, 0 ms] (351) QDP (352) TransformationProof [EQUIVALENT, 0 ms] (353) QDP (354) TransformationProof [EQUIVALENT, 0 ms] (355) QDP (356) TransformationProof [EQUIVALENT, 0 ms] (357) QDP (358) TransformationProof [EQUIVALENT, 0 ms] (359) QDP (360) TransformationProof [EQUIVALENT, 0 ms] (361) QDP (362) TransformationProof [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) TransformationProof [EQUIVALENT, 0 ms] (387) QDP (388) TransformationProof [EQUIVALENT, 0 ms] (389) QDP (390) TransformationProof [EQUIVALENT, 0 ms] (391) QDP (392) TransformationProof [EQUIVALENT, 1 ms] (393) QDP (394) TransformationProof [EQUIVALENT, 0 ms] (395) QDP (396) TransformationProof [EQUIVALENT, 0 ms] (397) QDP (398) TransformationProof [EQUIVALENT, 0 ms] (399) QDP (400) TransformationProof [EQUIVALENT, 0 ms] (401) QDP (402) DependencyGraphProof [EQUIVALENT, 0 ms] (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) DependencyGraphProof [EQUIVALENT, 0 ms] (435) QDP (436) TransformationProof [EQUIVALENT, 0 ms] (437) QDP (438) TransformationProof [EQUIVALENT, 0 ms] (439) QDP (440) TransformationProof [EQUIVALENT, 0 ms] (441) QDP (442) TransformationProof [EQUIVALENT, 0 ms] (443) QDP (444) TransformationProof [EQUIVALENT, 0 ms] (445) QDP (446) TransformationProof [EQUIVALENT, 0 ms] (447) QDP (448) TransformationProof [EQUIVALENT, 0 ms] (449) QDP (450) TransformationProof [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) TransformationProof [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) TransformationProof [EQUIVALENT, 0 ms] (485) QDP (486) TransformationProof [EQUIVALENT, 0 ms] (487) QDP (488) TransformationProof [EQUIVALENT, 0 ms] (489) QDP (490) TransformationProof [EQUIVALENT, 0 ms] (491) QDP (492) TransformationProof [EQUIVALENT, 0 ms] (493) QDP (494) DependencyGraphProof [EQUIVALENT, 0 ms] (495) QDP (496) TransformationProof [EQUIVALENT, 0 ms] (497) QDP (498) TransformationProof [EQUIVALENT, 0 ms] (499) QDP (500) TransformationProof [EQUIVALENT, 0 ms] (501) QDP (502) TransformationProof [EQUIVALENT, 0 ms] (503) QDP (504) TransformationProof [EQUIVALENT, 0 ms] (505) QDP (506) TransformationProof [EQUIVALENT, 0 ms] (507) QDP (508) TransformationProof [EQUIVALENT, 0 ms] (509) QDP (510) TransformationProof [EQUIVALENT, 0 ms] (511) QDP (512) TransformationProof [EQUIVALENT, 0 ms] (513) QDP (514) TransformationProof [EQUIVALENT, 0 ms] (515) QDP (516) TransformationProof [EQUIVALENT, 0 ms] (517) QDP (518) TransformationProof [EQUIVALENT, 0 ms] (519) QDP (520) TransformationProof [EQUIVALENT, 0 ms] (521) QDP (522) DependencyGraphProof [EQUIVALENT, 0 ms] (523) QDP (524) TransformationProof [EQUIVALENT, 0 ms] (525) QDP (526) TransformationProof [EQUIVALENT, 0 ms] (527) QDP (528) TransformationProof [EQUIVALENT, 0 ms] (529) QDP (530) TransformationProof [EQUIVALENT, 0 ms] (531) QDP (532) TransformationProof [EQUIVALENT, 0 ms] (533) QDP (534) TransformationProof [EQUIVALENT, 0 ms] (535) QDP (536) TransformationProof [EQUIVALENT, 0 ms] (537) QDP (538) TransformationProof [EQUIVALENT, 0 ms] (539) QDP (540) TransformationProof [EQUIVALENT, 0 ms] (541) QDP (542) TransformationProof [EQUIVALENT, 0 ms] (543) QDP (544) TransformationProof [EQUIVALENT, 0 ms] (545) QDP (546) TransformationProof [EQUIVALENT, 0 ms] (547) QDP (548) TransformationProof [EQUIVALENT, 0 ms] (549) QDP (550) TransformationProof [EQUIVALENT, 0 ms] (551) QDP (552) TransformationProof [EQUIVALENT, 0 ms] (553) QDP (554) DependencyGraphProof [EQUIVALENT, 0 ms] (555) QDP (556) TransformationProof [EQUIVALENT, 0 ms] (557) QDP (558) TransformationProof [EQUIVALENT, 0 ms] (559) QDP (560) TransformationProof [EQUIVALENT, 0 ms] (561) QDP (562) TransformationProof [EQUIVALENT, 0 ms] (563) QDP (564) TransformationProof [EQUIVALENT, 0 ms] (565) QDP (566) TransformationProof [EQUIVALENT, 0 ms] (567) QDP (568) TransformationProof [EQUIVALENT, 0 ms] (569) QDP (570) TransformationProof [EQUIVALENT, 0 ms] (571) QDP (572) TransformationProof [EQUIVALENT, 0 ms] (573) QDP (574) TransformationProof [EQUIVALENT, 0 ms] (575) QDP (576) TransformationProof [EQUIVALENT, 0 ms] (577) QDP (578) TransformationProof [EQUIVALENT, 0 ms] (579) QDP (580) TransformationProof [EQUIVALENT, 0 ms] (581) QDP (582) DependencyGraphProof [EQUIVALENT, 0 ms] (583) QDP (584) TransformationProof [EQUIVALENT, 0 ms] (585) QDP (586) QDPOrderProof [EQUIVALENT, 105 ms] (587) QDP (588) QDPOrderProof [EQUIVALENT, 184 ms] (589) QDP (590) InductionCalculusProof [EQUIVALENT, 0 ms] (591) QDP (592) QDP (593) QDPSizeChangeProof [EQUIVALENT, 0 ms] (594) YES (595) QDP (596) QDPSizeChangeProof [EQUIVALENT, 0 ms] (597) YES (598) QDP (599) QDPSizeChangeProof [EQUIVALENT, 0 ms] (600) YES (601) QDP (602) QDPSizeChangeProof [EQUIVALENT, 0 ms] (603) YES (604) QDP (605) DependencyGraphProof [EQUIVALENT, 0 ms] (606) AND (607) QDP (608) TransformationProof [EQUIVALENT, 0 ms] (609) QDP (610) TransformationProof [EQUIVALENT, 0 ms] (611) QDP (612) QDPSizeChangeProof [EQUIVALENT, 0 ms] (613) YES (614) QDP (615) QDPSizeChangeProof [EQUIVALENT, 0 ms] (616) YES (617) QDP (618) QDPSizeChangeProof [EQUIVALENT, 0 ms] (619) YES (620) QDP (621) QDPSizeChangeProof [EQUIVALENT, 0 ms] (622) YES (623) QDP (624) QDPSizeChangeProof [EQUIVALENT, 0 ms] (625) YES (626) QDP (627) QDPSizeChangeProof [EQUIVALENT, 0 ms] (628) YES (629) QDP (630) QDPSizeChangeProof [EQUIVALENT, 0 ms] (631) YES (632) QDP (633) QDPSizeChangeProof [EQUIVALENT, 0 ms] (634) YES (635) QDP (636) QDPSizeChangeProof [EQUIVALENT, 0 ms] (637) YES (638) QDP (639) TransformationProof [EQUIVALENT, 0 ms] (640) QDP (641) UsableRulesProof [EQUIVALENT, 0 ms] (642) QDP (643) QReductionProof [EQUIVALENT, 0 ms] (644) QDP (645) TransformationProof [EQUIVALENT, 0 ms] (646) QDP (647) TransformationProof [EQUIVALENT, 0 ms] (648) QDP (649) UsableRulesProof [EQUIVALENT, 0 ms] (650) QDP (651) QReductionProof [EQUIVALENT, 0 ms] (652) QDP (653) TransformationProof [EQUIVALENT, 0 ms] (654) QDP (655) UsableRulesProof [EQUIVALENT, 0 ms] (656) QDP (657) QReductionProof [EQUIVALENT, 0 ms] (658) QDP (659) InductionCalculusProof [EQUIVALENT, 0 ms] (660) QDP (661) TransformationProof [EQUIVALENT, 0 ms] (662) QDP (663) TransformationProof [EQUIVALENT, 0 ms] (664) QDP (665) DependencyGraphProof [EQUIVALENT, 0 ms] (666) QDP (667) TransformationProof [EQUIVALENT, 0 ms] (668) QDP (669) DependencyGraphProof [EQUIVALENT, 0 ms] (670) QDP (671) TransformationProof [EQUIVALENT, 0 ms] (672) QDP (673) DependencyGraphProof [EQUIVALENT, 0 ms] (674) QDP (675) TransformationProof [EQUIVALENT, 0 ms] (676) QDP (677) DependencyGraphProof [EQUIVALENT, 0 ms] (678) QDP (679) TransformationProof [EQUIVALENT, 0 ms] (680) QDP (681) DependencyGraphProof [EQUIVALENT, 0 ms] (682) AND (683) QDP (684) UsableRulesProof [EQUIVALENT, 0 ms] (685) QDP (686) QReductionProof [EQUIVALENT, 0 ms] (687) QDP (688) TransformationProof [EQUIVALENT, 0 ms] (689) QDP (690) DependencyGraphProof [EQUIVALENT, 0 ms] (691) QDP (692) TransformationProof [EQUIVALENT, 0 ms] (693) QDP (694) DependencyGraphProof [EQUIVALENT, 0 ms] (695) QDP (696) TransformationProof [EQUIVALENT, 0 ms] (697) QDP (698) TransformationProof [EQUIVALENT, 0 ms] (699) QDP (700) DependencyGraphProof [EQUIVALENT, 0 ms] (701) AND (702) QDP (703) UsableRulesProof [EQUIVALENT, 0 ms] (704) QDP (705) QReductionProof [EQUIVALENT, 0 ms] (706) QDP (707) TransformationProof [EQUIVALENT, 0 ms] (708) QDP (709) TransformationProof [EQUIVALENT, 0 ms] (710) QDP (711) TransformationProof [EQUIVALENT, 0 ms] (712) QDP (713) TransformationProof [EQUIVALENT, 0 ms] (714) QDP (715) TransformationProof [EQUIVALENT, 0 ms] (716) QDP (717) DependencyGraphProof [EQUIVALENT, 0 ms] (718) QDP (719) TransformationProof [EQUIVALENT, 0 ms] (720) QDP (721) DependencyGraphProof [EQUIVALENT, 0 ms] (722) QDP (723) TransformationProof [EQUIVALENT, 0 ms] (724) QDP (725) TransformationProof [EQUIVALENT, 0 ms] (726) QDP (727) TransformationProof [EQUIVALENT, 0 ms] (728) QDP (729) TransformationProof [EQUIVALENT, 0 ms] (730) QDP (731) DependencyGraphProof [EQUIVALENT, 0 ms] (732) QDP (733) TransformationProof [EQUIVALENT, 0 ms] (734) QDP (735) DependencyGraphProof [EQUIVALENT, 0 ms] (736) QDP (737) TransformationProof [EQUIVALENT, 0 ms] (738) QDP (739) MRRProof [EQUIVALENT, 0 ms] (740) QDP (741) DependencyGraphProof [EQUIVALENT, 0 ms] (742) TRUE (743) QDP (744) UsableRulesProof [EQUIVALENT, 0 ms] (745) QDP (746) TransformationProof [EQUIVALENT, 0 ms] (747) QDP (748) TransformationProof [EQUIVALENT, 0 ms] (749) QDP (750) TransformationProof [EQUIVALENT, 0 ms] (751) QDP (752) TransformationProof [EQUIVALENT, 0 ms] (753) QDP (754) TransformationProof [EQUIVALENT, 0 ms] (755) QDP (756) TransformationProof [EQUIVALENT, 0 ms] (757) QDP (758) TransformationProof [EQUIVALENT, 0 ms] (759) QDP (760) TransformationProof [EQUIVALENT, 0 ms] (761) QDP (762) TransformationProof [EQUIVALENT, 0 ms] (763) QDP (764) DependencyGraphProof [EQUIVALENT, 0 ms] (765) QDP (766) TransformationProof [EQUIVALENT, 0 ms] (767) QDP (768) TransformationProof [EQUIVALENT, 0 ms] (769) QDP (770) TransformationProof [EQUIVALENT, 0 ms] (771) QDP (772) TransformationProof [EQUIVALENT, 0 ms] (773) QDP (774) TransformationProof [EQUIVALENT, 0 ms] (775) QDP (776) TransformationProof [EQUIVALENT, 0 ms] (777) QDP (778) TransformationProof [EQUIVALENT, 0 ms] (779) QDP (780) TransformationProof [EQUIVALENT, 0 ms] (781) QDP (782) TransformationProof [EQUIVALENT, 0 ms] (783) QDP (784) TransformationProof [EQUIVALENT, 0 ms] (785) QDP (786) TransformationProof [EQUIVALENT, 0 ms] (787) QDP (788) DependencyGraphProof [EQUIVALENT, 0 ms] (789) QDP (790) TransformationProof [EQUIVALENT, 0 ms] (791) QDP (792) DependencyGraphProof [EQUIVALENT, 0 ms] (793) AND (794) QDP (795) TransformationProof [EQUIVALENT, 0 ms] (796) QDP (797) TransformationProof [EQUIVALENT, 0 ms] (798) QDP (799) TransformationProof [EQUIVALENT, 0 ms] (800) QDP (801) TransformationProof [EQUIVALENT, 0 ms] (802) QDP (803) TransformationProof [EQUIVALENT, 0 ms] (804) QDP (805) TransformationProof [EQUIVALENT, 0 ms] (806) QDP (807) DependencyGraphProof [EQUIVALENT, 0 ms] (808) QDP (809) QDPOrderProof [EQUIVALENT, 990 ms] (810) QDP (811) DependencyGraphProof [EQUIVALENT, 0 ms] (812) TRUE (813) QDP (814) TransformationProof [EQUIVALENT, 0 ms] (815) QDP (816) DependencyGraphProof [EQUIVALENT, 0 ms] (817) AND (818) QDP (819) TransformationProof [EQUIVALENT, 0 ms] (820) QDP (821) TransformationProof [EQUIVALENT, 0 ms] (822) QDP (823) TransformationProof [EQUIVALENT, 0 ms] (824) QDP (825) TransformationProof [EQUIVALENT, 0 ms] (826) QDP (827) QDPOrderProof [EQUIVALENT, 187 ms] (828) QDP (829) DependencyGraphProof [EQUIVALENT, 0 ms] (830) TRUE (831) QDP (832) InductionCalculusProof [EQUIVALENT, 0 ms] (833) QDP (834) QDP (835) UsableRulesProof [EQUIVALENT, 0 ms] (836) QDP (837) QReductionProof [EQUIVALENT, 0 ms] (838) QDP (839) TransformationProof [EQUIVALENT, 0 ms] (840) QDP (841) DependencyGraphProof [EQUIVALENT, 0 ms] (842) QDP (843) TransformationProof [EQUIVALENT, 0 ms] (844) QDP (845) DependencyGraphProof [EQUIVALENT, 0 ms] (846) QDP (847) TransformationProof [EQUIVALENT, 0 ms] (848) QDP (849) TransformationProof [EQUIVALENT, 0 ms] (850) QDP (851) DependencyGraphProof [EQUIVALENT, 0 ms] (852) AND (853) QDP (854) UsableRulesProof [EQUIVALENT, 0 ms] (855) QDP (856) QReductionProof [EQUIVALENT, 0 ms] (857) QDP (858) TransformationProof [EQUIVALENT, 0 ms] (859) QDP (860) TransformationProof [EQUIVALENT, 0 ms] (861) QDP (862) TransformationProof [EQUIVALENT, 0 ms] (863) QDP (864) TransformationProof [EQUIVALENT, 0 ms] (865) QDP (866) TransformationProof [EQUIVALENT, 0 ms] (867) QDP (868) DependencyGraphProof [EQUIVALENT, 0 ms] (869) QDP (870) TransformationProof [EQUIVALENT, 0 ms] (871) QDP (872) DependencyGraphProof [EQUIVALENT, 0 ms] (873) QDP (874) TransformationProof [EQUIVALENT, 0 ms] (875) QDP (876) TransformationProof [EQUIVALENT, 0 ms] (877) QDP (878) TransformationProof [EQUIVALENT, 0 ms] (879) QDP (880) TransformationProof [EQUIVALENT, 0 ms] (881) QDP (882) DependencyGraphProof [EQUIVALENT, 0 ms] (883) QDP (884) TransformationProof [EQUIVALENT, 0 ms] (885) QDP (886) DependencyGraphProof [EQUIVALENT, 0 ms] (887) QDP (888) TransformationProof [EQUIVALENT, 0 ms] (889) QDP (890) QDPSizeChangeProof [EQUIVALENT, 0 ms] (891) YES (892) QDP (893) UsableRulesProof [EQUIVALENT, 0 ms] (894) QDP (895) TransformationProof [EQUIVALENT, 0 ms] (896) QDP (897) TransformationProof [EQUIVALENT, 0 ms] (898) QDP (899) TransformationProof [EQUIVALENT, 0 ms] (900) QDP (901) TransformationProof [EQUIVALENT, 0 ms] (902) QDP (903) TransformationProof [EQUIVALENT, 0 ms] (904) QDP (905) TransformationProof [EQUIVALENT, 0 ms] (906) QDP (907) TransformationProof [EQUIVALENT, 0 ms] (908) QDP (909) TransformationProof [EQUIVALENT, 0 ms] (910) QDP (911) TransformationProof [EQUIVALENT, 0 ms] (912) QDP (913) DependencyGraphProof [EQUIVALENT, 0 ms] (914) QDP (915) TransformationProof [EQUIVALENT, 0 ms] (916) QDP (917) TransformationProof [EQUIVALENT, 0 ms] (918) QDP (919) TransformationProof [EQUIVALENT, 0 ms] (920) QDP (921) TransformationProof [EQUIVALENT, 0 ms] (922) QDP (923) TransformationProof [EQUIVALENT, 0 ms] (924) QDP (925) TransformationProof [EQUIVALENT, 0 ms] (926) QDP (927) TransformationProof [EQUIVALENT, 0 ms] (928) QDP (929) TransformationProof [EQUIVALENT, 0 ms] (930) QDP (931) TransformationProof [EQUIVALENT, 0 ms] (932) QDP (933) TransformationProof [EQUIVALENT, 0 ms] (934) QDP (935) TransformationProof [EQUIVALENT, 0 ms] (936) QDP (937) DependencyGraphProof [EQUIVALENT, 0 ms] (938) QDP (939) TransformationProof [EQUIVALENT, 0 ms] (940) QDP (941) DependencyGraphProof [EQUIVALENT, 0 ms] (942) AND (943) QDP (944) TransformationProof [EQUIVALENT, 0 ms] (945) QDP (946) TransformationProof [EQUIVALENT, 0 ms] (947) QDP (948) TransformationProof [EQUIVALENT, 0 ms] (949) QDP (950) TransformationProof [EQUIVALENT, 0 ms] (951) QDP (952) TransformationProof [EQUIVALENT, 0 ms] (953) QDP (954) TransformationProof [EQUIVALENT, 0 ms] (955) QDP (956) DependencyGraphProof [EQUIVALENT, 0 ms] (957) QDP (958) QDPOrderProof [EQUIVALENT, 1591 ms] (959) QDP (960) DependencyGraphProof [EQUIVALENT, 0 ms] (961) TRUE (962) QDP (963) TransformationProof [EQUIVALENT, 0 ms] (964) QDP (965) DependencyGraphProof [EQUIVALENT, 0 ms] (966) AND (967) QDP (968) TransformationProof [EQUIVALENT, 0 ms] (969) QDP (970) TransformationProof [EQUIVALENT, 0 ms] (971) QDP (972) TransformationProof [EQUIVALENT, 0 ms] (973) QDP (974) TransformationProof [EQUIVALENT, 0 ms] (975) QDP (976) QDPOrderProof [EQUIVALENT, 1093 ms] (977) QDP (978) DependencyGraphProof [EQUIVALENT, 0 ms] (979) TRUE (980) QDP (981) QReductionProof [EQUIVALENT, 0 ms] (982) QDP (983) InductionCalculusProof [EQUIVALENT, 0 ms] (984) QDP (985) QDP (986) UsableRulesProof [EQUIVALENT, 0 ms] (987) QDP (988) QReductionProof [EQUIVALENT, 0 ms] (989) QDP (990) TransformationProof [EQUIVALENT, 0 ms] (991) QDP (992) DependencyGraphProof [EQUIVALENT, 0 ms] (993) QDP (994) TransformationProof [EQUIVALENT, 0 ms] (995) QDP (996) DependencyGraphProof [EQUIVALENT, 0 ms] (997) QDP (998) TransformationProof [EQUIVALENT, 0 ms] (999) QDP (1000) TransformationProof [EQUIVALENT, 0 ms] (1001) QDP (1002) DependencyGraphProof [EQUIVALENT, 0 ms] (1003) QDP (1004) TransformationProof [EQUIVALENT, 0 ms] (1005) QDP (1006) TransformationProof [EQUIVALENT, 0 ms] (1007) QDP (1008) TransformationProof [EQUIVALENT, 0 ms] (1009) QDP (1010) DependencyGraphProof [EQUIVALENT, 0 ms] (1011) QDP (1012) TransformationProof [EQUIVALENT, 0 ms] (1013) QDP (1014) TransformationProof [EQUIVALENT, 0 ms] (1015) QDP (1016) TransformationProof [EQUIVALENT, 0 ms] (1017) QDP (1018) TransformationProof [EQUIVALENT, 0 ms] (1019) QDP (1020) DependencyGraphProof [EQUIVALENT, 0 ms] (1021) QDP (1022) TransformationProof [EQUIVALENT, 0 ms] (1023) QDP (1024) TransformationProof [EQUIVALENT, 0 ms] (1025) QDP (1026) TransformationProof [EQUIVALENT, 0 ms] (1027) QDP (1028) TransformationProof [EQUIVALENT, 0 ms] (1029) QDP (1030) TransformationProof [EQUIVALENT, 0 ms] (1031) QDP (1032) TransformationProof [EQUIVALENT, 0 ms] (1033) QDP (1034) TransformationProof [EQUIVALENT, 0 ms] (1035) QDP (1036) DependencyGraphProof [EQUIVALENT, 0 ms] (1037) QDP (1038) TransformationProof [EQUIVALENT, 0 ms] (1039) QDP (1040) DependencyGraphProof [EQUIVALENT, 0 ms] (1041) AND (1042) QDP (1043) UsableRulesProof [EQUIVALENT, 0 ms] (1044) QDP (1045) QReductionProof [EQUIVALENT, 0 ms] (1046) QDP (1047) TransformationProof [EQUIVALENT, 0 ms] (1048) QDP (1049) TransformationProof [EQUIVALENT, 0 ms] (1050) QDP (1051) TransformationProof [EQUIVALENT, 0 ms] (1052) QDP (1053) DependencyGraphProof [EQUIVALENT, 0 ms] (1054) QDP (1055) TransformationProof [EQUIVALENT, 0 ms] (1056) QDP (1057) DependencyGraphProof [EQUIVALENT, 0 ms] (1058) QDP (1059) TransformationProof [EQUIVALENT, 0 ms] (1060) QDP (1061) TransformationProof [EQUIVALENT, 0 ms] (1062) QDP (1063) TransformationProof [EQUIVALENT, 0 ms] (1064) QDP (1065) TransformationProof [EQUIVALENT, 0 ms] (1066) QDP (1067) DependencyGraphProof [EQUIVALENT, 0 ms] (1068) QDP (1069) TransformationProof [EQUIVALENT, 0 ms] (1070) QDP (1071) DependencyGraphProof [EQUIVALENT, 0 ms] (1072) QDP (1073) TransformationProof [EQUIVALENT, 0 ms] (1074) QDP (1075) QDPSizeChangeProof [EQUIVALENT, 0 ms] (1076) YES (1077) QDP (1078) UsableRulesProof [EQUIVALENT, 0 ms] (1079) QDP (1080) QReductionProof [EQUIVALENT, 0 ms] (1081) QDP (1082) TransformationProof [EQUIVALENT, 0 ms] (1083) QDP (1084) TransformationProof [EQUIVALENT, 0 ms] (1085) QDP (1086) TransformationProof [EQUIVALENT, 0 ms] (1087) QDP (1088) TransformationProof [EQUIVALENT, 0 ms] (1089) QDP (1090) TransformationProof [EQUIVALENT, 0 ms] (1091) QDP (1092) DependencyGraphProof [EQUIVALENT, 0 ms] (1093) QDP (1094) TransformationProof [EQUIVALENT, 0 ms] (1095) QDP (1096) TransformationProof [EQUIVALENT, 0 ms] (1097) QDP (1098) TransformationProof [EQUIVALENT, 0 ms] (1099) QDP (1100) TransformationProof [EQUIVALENT, 0 ms] (1101) QDP (1102) DependencyGraphProof [EQUIVALENT, 0 ms] (1103) QDP (1104) TransformationProof [EQUIVALENT, 0 ms] (1105) QDP (1106) DependencyGraphProof [EQUIVALENT, 0 ms] (1107) QDP (1108) TransformationProof [EQUIVALENT, 0 ms] (1109) QDP (1110) TransformationProof [EQUIVALENT, 0 ms] (1111) QDP (1112) DependencyGraphProof [EQUIVALENT, 0 ms] (1113) QDP (1114) TransformationProof [EQUIVALENT, 0 ms] (1115) QDP (1116) QDPSizeChangeProof [EQUIVALENT, 0 ms] (1117) YES (1118) QDP (1119) UsableRulesProof [EQUIVALENT, 0 ms] (1120) QDP (1121) TransformationProof [EQUIVALENT, 0 ms] (1122) QDP (1123) TransformationProof [EQUIVALENT, 0 ms] (1124) QDP (1125) TransformationProof [EQUIVALENT, 0 ms] (1126) QDP (1127) TransformationProof [EQUIVALENT, 0 ms] (1128) QDP (1129) TransformationProof [EQUIVALENT, 0 ms] (1130) QDP (1131) TransformationProof [EQUIVALENT, 0 ms] (1132) QDP (1133) TransformationProof [EQUIVALENT, 0 ms] (1134) QDP (1135) TransformationProof [EQUIVALENT, 0 ms] (1136) QDP (1137) TransformationProof [EQUIVALENT, 0 ms] (1138) QDP (1139) DependencyGraphProof [EQUIVALENT, 0 ms] (1140) QDP (1141) TransformationProof [EQUIVALENT, 0 ms] (1142) QDP (1143) TransformationProof [EQUIVALENT, 0 ms] (1144) QDP (1145) TransformationProof [EQUIVALENT, 0 ms] (1146) QDP (1147) TransformationProof [EQUIVALENT, 0 ms] (1148) QDP (1149) TransformationProof [EQUIVALENT, 0 ms] (1150) QDP (1151) TransformationProof [EQUIVALENT, 0 ms] (1152) QDP (1153) TransformationProof [EQUIVALENT, 0 ms] (1154) QDP (1155) DependencyGraphProof [EQUIVALENT, 0 ms] (1156) QDP (1157) TransformationProof [EQUIVALENT, 0 ms] (1158) QDP (1159) DependencyGraphProof [EQUIVALENT, 0 ms] (1160) QDP (1161) TransformationProof [EQUIVALENT, 0 ms] (1162) QDP (1163) TransformationProof [EQUIVALENT, 0 ms] (1164) QDP (1165) TransformationProof [EQUIVALENT, 0 ms] (1166) QDP (1167) TransformationProof [EQUIVALENT, 0 ms] (1168) QDP (1169) TransformationProof [EQUIVALENT, 0 ms] (1170) QDP (1171) DependencyGraphProof [EQUIVALENT, 0 ms] (1172) QDP (1173) TransformationProof [EQUIVALENT, 0 ms] (1174) QDP (1175) DependencyGraphProof [EQUIVALENT, 0 ms] (1176) QDP (1177) TransformationProof [EQUIVALENT, 0 ms] (1178) QDP (1179) DependencyGraphProof [EQUIVALENT, 0 ms] (1180) AND (1181) QDP (1182) UsableRulesProof [EQUIVALENT, 0 ms] (1183) QDP (1184) TransformationProof [EQUIVALENT, 0 ms] (1185) QDP (1186) TransformationProof [EQUIVALENT, 0 ms] (1187) QDP (1188) TransformationProof [EQUIVALENT, 0 ms] (1189) QDP (1190) TransformationProof [EQUIVALENT, 0 ms] (1191) QDP (1192) DependencyGraphProof [EQUIVALENT, 0 ms] (1193) QDP (1194) TransformationProof [EQUIVALENT, 0 ms] (1195) QDP (1196) DependencyGraphProof [EQUIVALENT, 0 ms] (1197) QDP (1198) InductionCalculusProof [EQUIVALENT, 0 ms] (1199) QDP (1200) QDP (1201) UsableRulesProof [EQUIVALENT, 0 ms] (1202) QDP (1203) TransformationProof [EQUIVALENT, 0 ms] (1204) QDP (1205) UsableRulesProof [EQUIVALENT, 0 ms] (1206) QDP (1207) InductionCalculusProof [EQUIVALENT, 0 ms] (1208) QDP (1209) QDP (1210) TransformationProof [EQUIVALENT, 0 ms] (1211) QDP (1212) TransformationProof [EQUIVALENT, 0 ms] (1213) QDP (1214) TransformationProof [EQUIVALENT, 0 ms] (1215) QDP (1216) TransformationProof [EQUIVALENT, 0 ms] (1217) QDP (1218) TransformationProof [EQUIVALENT, 0 ms] (1219) QDP (1220) TransformationProof [EQUIVALENT, 0 ms] (1221) QDP (1222) TransformationProof [EQUIVALENT, 0 ms] (1223) QDP (1224) TransformationProof [EQUIVALENT, 0 ms] (1225) QDP (1226) TransformationProof [EQUIVALENT, 0 ms] (1227) QDP (1228) TransformationProof [EQUIVALENT, 0 ms] (1229) QDP (1230) TransformationProof [EQUIVALENT, 0 ms] (1231) QDP (1232) DependencyGraphProof [EQUIVALENT, 0 ms] (1233) QDP (1234) TransformationProof [EQUIVALENT, 0 ms] (1235) QDP (1236) DependencyGraphProof [EQUIVALENT, 0 ms] (1237) QDP (1238) TransformationProof [EQUIVALENT, 0 ms] (1239) QDP (1240) TransformationProof [EQUIVALENT, 0 ms] (1241) QDP (1242) TransformationProof [EQUIVALENT, 0 ms] (1243) QDP (1244) TransformationProof [EQUIVALENT, 0 ms] (1245) QDP (1246) TransformationProof [EQUIVALENT, 0 ms] (1247) QDP (1248) TransformationProof [EQUIVALENT, 0 ms] (1249) QDP (1250) DependencyGraphProof [EQUIVALENT, 0 ms] (1251) AND (1252) QDP (1253) UsableRulesProof [EQUIVALENT, 0 ms] (1254) QDP (1255) TransformationProof [EQUIVALENT, 0 ms] (1256) QDP (1257) TransformationProof [EQUIVALENT, 0 ms] (1258) QDP (1259) TransformationProof [EQUIVALENT, 0 ms] (1260) QDP (1261) TransformationProof [EQUIVALENT, 0 ms] (1262) QDP (1263) InductionCalculusProof [EQUIVALENT, 0 ms] (1264) QDP (1265) QDP (1266) UsableRulesProof [EQUIVALENT, 0 ms] (1267) QDP (1268) QDPOrderProof [EQUIVALENT, 496 ms] (1269) QDP (1270) DependencyGraphProof [EQUIVALENT, 0 ms] (1271) TRUE (1272) QDP (1273) InductionCalculusProof [EQUIVALENT, 0 ms] (1274) QDP (1275) QDP (1276) DependencyGraphProof [EQUIVALENT, 0 ms] (1277) AND (1278) QDP (1279) MRRProof [EQUIVALENT, 0 ms] (1280) QDP (1281) PisEmptyProof [EQUIVALENT, 0 ms] (1282) YES (1283) QDP (1284) QDPOrderProof [EQUIVALENT, 0 ms] (1285) QDP (1286) DependencyGraphProof [EQUIVALENT, 0 ms] (1287) QDP (1288) QDPSizeChangeProof [EQUIVALENT, 0 ms] (1289) YES (1290) QDP (1291) QDPSizeChangeProof [EQUIVALENT, 0 ms] (1292) YES (1293) QDP (1294) QDPSizeChangeProof [EQUIVALENT, 0 ms] (1295) YES (1296) QDP (1297) QDPSizeChangeProof [EQUIVALENT, 0 ms] (1298) YES (1299) Narrow [COMPLETE, 0 ms] (1300) TRUE ---------------------------------------- (0) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (1) IFR (EQUIVALENT) If Reductions: The following If expression "if primGEqNatS x y then Succ (primDivNatS (primMinusNatS x y) (Succ y)) else Zero" is transformed to "primDivNatS0 x y True = Succ (primDivNatS (primMinusNatS x y) (Succ y)); primDivNatS0 x y False = Zero; " The following If expression "if primGEqNatS x y then primModNatS (primMinusNatS x y) (Succ y) else Succ x" is transformed to "primModNatS0 x y True = primModNatS (primMinusNatS x y) (Succ y); primModNatS0 x y False = Succ x; " ---------------------------------------- (2) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (3) BR (EQUIVALENT) Replaced joker patterns by fresh variables and removed binding patterns. ---------------------------------------- (4) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (5) COR (EQUIVALENT) Cond Reductions: The following Function with conditions "absReal x|x >= 0x|otherwise`negate` x; " is transformed to "absReal x = absReal2 x; " "absReal1 x True = x; absReal1 x False = absReal0 x otherwise; " "absReal0 x True = `negate` x; " "absReal2 x = absReal1 x (x >= 0); " The following Function with conditions "gcd' x 0 = x; gcd' x y = gcd' y (x `rem` y); " is transformed to "gcd' x xz = gcd'2 x xz; gcd' x y = gcd'0 x y; " "gcd'0 x y = gcd' y (x `rem` y); " "gcd'1 True x xz = x; gcd'1 yu yv yw = gcd'0 yv yw; " "gcd'2 x xz = gcd'1 (xz == 0) x xz; gcd'2 yx yy = gcd'0 yx yy; " The following Function with conditions "gcd 0 0 = error []; gcd x y = gcd' (abs x) (abs y) where { gcd' x 0 = x; gcd' x y = gcd' y (x `rem` y); } ; " is transformed to "gcd yz zu = gcd3 yz zu; gcd x y = gcd0 x y; " "gcd0 x y = gcd' (abs x) (abs y) where { gcd' x xz = gcd'2 x xz; gcd' x y = gcd'0 x y; ; gcd'0 x y = gcd' y (x `rem` y); ; gcd'1 True x xz = x; gcd'1 yu yv yw = gcd'0 yv yw; ; gcd'2 x xz = gcd'1 (xz == 0) x xz; gcd'2 yx yy = gcd'0 yx yy; } ; " "gcd1 True yz zu = error []; gcd1 zv zw zx = gcd0 zw zx; " "gcd2 True yz zu = gcd1 (zu == 0) yz zu; gcd2 zy zz vuu = gcd0 zz vuu; " "gcd3 yz zu = gcd2 (yz == 0) yz zu; gcd3 vuv vuw = gcd0 vuv vuw; " The following Function with conditions "undefined |Falseundefined; " is transformed to "undefined = undefined1; " "undefined0 True = undefined; " "undefined1 = undefined0 False; " The following Function with conditions "reduce x y|y == 0error []|otherwisex `quot` d :% (y `quot` d) where { d = gcd x y; } ; " is transformed to "reduce x y = reduce2 x y; " "reduce2 x y = reduce1 x y (y == 0) where { d = gcd x y; ; reduce0 x y True = x `quot` d :% (y `quot` d); ; reduce1 x y True = error []; reduce1 x y False = reduce0 x y otherwise; } ; " ---------------------------------------- (6) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (7) LetRed (EQUIVALENT) Let/Where Reductions: The bindings of the following Let/Where expression "gcd' (abs x) (abs y) where { gcd' x xz = gcd'2 x xz; gcd' x y = gcd'0 x y; ; gcd'0 x y = gcd' y (x `rem` y); ; gcd'1 True x xz = x; gcd'1 yu yv yw = gcd'0 yv yw; ; gcd'2 x xz = gcd'1 (xz == 0) x xz; gcd'2 yx yy = gcd'0 yx yy; } " are unpacked to the following functions on top level "gcd0Gcd'2 x xz = gcd0Gcd'1 (xz == 0) x xz; gcd0Gcd'2 yx yy = gcd0Gcd'0 yx yy; " "gcd0Gcd'1 True x xz = x; gcd0Gcd'1 yu yv yw = gcd0Gcd'0 yv yw; " "gcd0Gcd' x xz = gcd0Gcd'2 x xz; gcd0Gcd' x y = gcd0Gcd'0 x y; " "gcd0Gcd'0 x y = gcd0Gcd' y (x `rem` y); " The bindings of the following Let/Where expression "reduce1 x y (y == 0) where { d = gcd x y; ; reduce0 x y True = x `quot` d :% (y `quot` d); ; reduce1 x y True = error []; reduce1 x y False = reduce0 x y otherwise; } " are unpacked to the following functions on top level "reduce2D vux vuy = gcd vux vuy; " "reduce2Reduce1 vux vuy x y True = error []; reduce2Reduce1 vux vuy x y False = reduce2Reduce0 vux vuy x y otherwise; " "reduce2Reduce0 vux vuy x y True = x `quot` reduce2D vux vuy :% (y `quot` reduce2D vux vuy); " ---------------------------------------- (8) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (9) NumRed (SOUND) Num Reduction:All numbers are transformed to their corresponding representation with Succ, Pred and Zero. ---------------------------------------- (10) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (11) Narrow (SOUND) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="sum",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="sum vuz3",fontsize=16,color="black",shape="triangle"];3 -> 4[label="",style="solid", color="black", weight=3]; 4[label="foldl' (+) (fromInt (Pos Zero)) vuz3",fontsize=16,color="burlywood",shape="box"];3378[label="vuz3/vuz30 : vuz31",fontsize=10,color="white",style="solid",shape="box"];4 -> 3378[label="",style="solid", color="burlywood", weight=9]; 3378 -> 5[label="",style="solid", color="burlywood", weight=3]; 3379[label="vuz3/[]",fontsize=10,color="white",style="solid",shape="box"];4 -> 3379[label="",style="solid", color="burlywood", weight=9]; 3379 -> 6[label="",style="solid", color="burlywood", weight=3]; 5[label="foldl' (+) (fromInt (Pos Zero)) (vuz30 : vuz31)",fontsize=16,color="black",shape="box"];5 -> 7[label="",style="solid", color="black", weight=3]; 6[label="foldl' (+) (fromInt (Pos Zero)) []",fontsize=16,color="black",shape="box"];6 -> 8[label="",style="solid", color="black", weight=3]; 7[label="(foldl' (+) $! (+) fromInt (Pos Zero) vuz30)",fontsize=16,color="black",shape="box"];7 -> 9[label="",style="solid", color="black", weight=3]; 8[label="fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];3380[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];8 -> 3380[label="",style="solid", color="blue", weight=9]; 3380 -> 10[label="",style="solid", color="blue", weight=3]; 3381[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];8 -> 3381[label="",style="solid", color="blue", weight=9]; 3381 -> 11[label="",style="solid", color="blue", weight=3]; 3382[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];8 -> 3382[label="",style="solid", color="blue", weight=9]; 3382 -> 12[label="",style="solid", color="blue", weight=3]; 3383[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];8 -> 3383[label="",style="solid", color="blue", weight=9]; 3383 -> 13[label="",style="solid", color="blue", weight=3]; 3384[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];8 -> 3384[label="",style="solid", color="blue", weight=9]; 3384 -> 14[label="",style="solid", color="blue", weight=3]; 9[label="((+) fromInt (Pos Zero) vuz30 `seq` foldl' (+) ((+) fromInt (Pos Zero) vuz30))",fontsize=16,color="black",shape="box"];9 -> 15[label="",style="solid", color="black", weight=3]; 10[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];10 -> 16[label="",style="solid", color="black", weight=3]; 11[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];11 -> 17[label="",style="solid", color="black", weight=3]; 12[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];12 -> 18[label="",style="solid", color="black", weight=3]; 13[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];13 -> 19[label="",style="solid", color="black", weight=3]; 14[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];14 -> 20[label="",style="solid", color="black", weight=3]; 15 -> 21[label="",style="dashed", color="red", weight=0]; 15[label="enforceWHNF (WHNF ((+) fromInt (Pos Zero) vuz30)) (foldl' (+) ((+) fromInt (Pos Zero) vuz30)) vuz31",fontsize=16,color="magenta"];15 -> 22[label="",style="dashed", color="magenta", weight=3]; 15 -> 23[label="",style="dashed", color="magenta", weight=3]; 16[label="primIntToFloat (Pos Zero)",fontsize=16,color="black",shape="box"];16 -> 24[label="",style="solid", color="black", weight=3]; 17[label="primIntToDouble (Pos Zero)",fontsize=16,color="black",shape="box"];17 -> 25[label="",style="solid", color="black", weight=3]; 18[label="Integer (Pos Zero)",fontsize=16,color="green",shape="box"];19[label="Pos Zero",fontsize=16,color="green",shape="box"];20[label="intToRatio (Pos Zero)",fontsize=16,color="black",shape="box"];20 -> 26[label="",style="solid", color="black", weight=3]; 22[label="(+) fromInt (Pos Zero) vuz30",fontsize=16,color="blue",shape="box"];3385[label="+ :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];22 -> 3385[label="",style="solid", color="blue", weight=9]; 3385 -> 27[label="",style="solid", color="blue", weight=3]; 3386[label="+ :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];22 -> 3386[label="",style="solid", color="blue", weight=9]; 3386 -> 28[label="",style="solid", color="blue", weight=3]; 3387[label="+ :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];22 -> 3387[label="",style="solid", color="blue", weight=9]; 3387 -> 29[label="",style="solid", color="blue", weight=3]; 3388[label="+ :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];22 -> 3388[label="",style="solid", color="blue", weight=9]; 3388 -> 30[label="",style="solid", color="blue", weight=3]; 3389[label="+ :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];22 -> 3389[label="",style="solid", color="blue", weight=9]; 3389 -> 31[label="",style="solid", color="blue", weight=3]; 23[label="vuz31",fontsize=16,color="green",shape="box"];21[label="enforceWHNF (WHNF vuz7) (foldl' (+) vuz7) vuz8",fontsize=16,color="black",shape="triangle"];21 -> 32[label="",style="solid", color="black", weight=3]; 24[label="Float (Pos Zero) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];25[label="Double (Pos Zero) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];26[label="fromInt (Pos Zero) :% fromInt (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];26 -> 33[label="",style="dashed", color="green", weight=3]; 26 -> 34[label="",style="dashed", color="green", weight=3]; 27 -> 35[label="",style="dashed", color="red", weight=0]; 27[label="(+) fromInt (Pos Zero) vuz30",fontsize=16,color="magenta"];27 -> 36[label="",style="dashed", color="magenta", weight=3]; 28 -> 37[label="",style="dashed", color="red", weight=0]; 28[label="(+) fromInt (Pos Zero) vuz30",fontsize=16,color="magenta"];28 -> 38[label="",style="dashed", color="magenta", weight=3]; 29 -> 39[label="",style="dashed", color="red", weight=0]; 29[label="(+) fromInt (Pos Zero) vuz30",fontsize=16,color="magenta"];29 -> 40[label="",style="dashed", color="magenta", weight=3]; 30 -> 41[label="",style="dashed", color="red", weight=0]; 30[label="(+) fromInt (Pos Zero) vuz30",fontsize=16,color="magenta"];30 -> 42[label="",style="dashed", color="magenta", weight=3]; 31 -> 43[label="",style="dashed", color="red", weight=0]; 31[label="(+) fromInt (Pos Zero) vuz30",fontsize=16,color="magenta"];31 -> 44[label="",style="dashed", color="magenta", weight=3]; 32[label="foldl' (+) vuz7 vuz8",fontsize=16,color="burlywood",shape="box"];3390[label="vuz8/vuz80 : vuz81",fontsize=10,color="white",style="solid",shape="box"];32 -> 3390[label="",style="solid", color="burlywood", weight=9]; 3390 -> 45[label="",style="solid", color="burlywood", weight=3]; 3391[label="vuz8/[]",fontsize=10,color="white",style="solid",shape="box"];32 -> 3391[label="",style="solid", color="burlywood", weight=9]; 3391 -> 46[label="",style="solid", color="burlywood", weight=3]; 33[label="fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];3392[label="fromInt :: Int -> Integer",fontsize=10,color="white",style="solid",shape="box"];33 -> 3392[label="",style="solid", color="blue", weight=9]; 3392 -> 47[label="",style="solid", color="blue", weight=3]; 3393[label="fromInt :: Int -> Int",fontsize=10,color="white",style="solid",shape="box"];33 -> 3393[label="",style="solid", color="blue", weight=9]; 3393 -> 48[label="",style="solid", color="blue", weight=3]; 34[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];3394[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];34 -> 3394[label="",style="solid", color="blue", weight=9]; 3394 -> 49[label="",style="solid", color="blue", weight=3]; 3395[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];34 -> 3395[label="",style="solid", color="blue", weight=9]; 3395 -> 50[label="",style="solid", color="blue", weight=3]; 36 -> 10[label="",style="dashed", color="red", weight=0]; 36[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];35[label="(+) vuz9 vuz30",fontsize=16,color="black",shape="triangle"];35 -> 51[label="",style="solid", color="black", weight=3]; 38 -> 11[label="",style="dashed", color="red", weight=0]; 38[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];37[label="(+) vuz10 vuz30",fontsize=16,color="black",shape="triangle"];37 -> 52[label="",style="solid", color="black", weight=3]; 40 -> 12[label="",style="dashed", color="red", weight=0]; 40[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];39[label="(+) vuz11 vuz30",fontsize=16,color="burlywood",shape="triangle"];3396[label="vuz11/Integer vuz110",fontsize=10,color="white",style="solid",shape="box"];39 -> 3396[label="",style="solid", color="burlywood", weight=9]; 3396 -> 53[label="",style="solid", color="burlywood", weight=3]; 42 -> 13[label="",style="dashed", color="red", weight=0]; 42[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];41[label="(+) vuz12 vuz30",fontsize=16,color="black",shape="triangle"];41 -> 54[label="",style="solid", color="black", weight=3]; 44 -> 14[label="",style="dashed", color="red", weight=0]; 44[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];43[label="(+) vuz13 vuz30",fontsize=16,color="burlywood",shape="triangle"];3397[label="vuz13/vuz130 :% vuz131",fontsize=10,color="white",style="solid",shape="box"];43 -> 3397[label="",style="solid", color="burlywood", weight=9]; 3397 -> 55[label="",style="solid", color="burlywood", weight=3]; 45[label="foldl' (+) vuz7 (vuz80 : vuz81)",fontsize=16,color="black",shape="box"];45 -> 56[label="",style="solid", color="black", weight=3]; 46[label="foldl' (+) vuz7 []",fontsize=16,color="black",shape="box"];46 -> 57[label="",style="solid", color="black", weight=3]; 47 -> 12[label="",style="dashed", color="red", weight=0]; 47[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];48 -> 13[label="",style="dashed", color="red", weight=0]; 48[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];49[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];49 -> 58[label="",style="solid", color="black", weight=3]; 50[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];50 -> 59[label="",style="solid", color="black", weight=3]; 51[label="primPlusFloat vuz9 vuz30",fontsize=16,color="burlywood",shape="box"];3398[label="vuz9/Float vuz90 vuz91",fontsize=10,color="white",style="solid",shape="box"];51 -> 3398[label="",style="solid", color="burlywood", weight=9]; 3398 -> 60[label="",style="solid", color="burlywood", weight=3]; 52[label="primPlusDouble vuz10 vuz30",fontsize=16,color="burlywood",shape="box"];3399[label="vuz10/Double vuz100 vuz101",fontsize=10,color="white",style="solid",shape="box"];52 -> 3399[label="",style="solid", color="burlywood", weight=9]; 3399 -> 61[label="",style="solid", color="burlywood", weight=3]; 53[label="(+) Integer vuz110 vuz30",fontsize=16,color="burlywood",shape="box"];3400[label="vuz30/Integer vuz300",fontsize=10,color="white",style="solid",shape="box"];53 -> 3400[label="",style="solid", color="burlywood", weight=9]; 3400 -> 62[label="",style="solid", color="burlywood", weight=3]; 54[label="primPlusInt vuz12 vuz30",fontsize=16,color="burlywood",shape="triangle"];3401[label="vuz12/Pos vuz120",fontsize=10,color="white",style="solid",shape="box"];54 -> 3401[label="",style="solid", color="burlywood", weight=9]; 3401 -> 63[label="",style="solid", color="burlywood", weight=3]; 3402[label="vuz12/Neg vuz120",fontsize=10,color="white",style="solid",shape="box"];54 -> 3402[label="",style="solid", color="burlywood", weight=9]; 3402 -> 64[label="",style="solid", color="burlywood", weight=3]; 55[label="(+) vuz130 :% vuz131 vuz30",fontsize=16,color="burlywood",shape="box"];3403[label="vuz30/vuz300 :% vuz301",fontsize=10,color="white",style="solid",shape="box"];55 -> 3403[label="",style="solid", color="burlywood", weight=9]; 3403 -> 65[label="",style="solid", color="burlywood", weight=3]; 56[label="(foldl' (+) $! (+) vuz7 vuz80)",fontsize=16,color="black",shape="box"];56 -> 66[label="",style="solid", color="black", weight=3]; 57[label="vuz7",fontsize=16,color="green",shape="box"];58[label="Integer (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];59[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];60[label="primPlusFloat (Float vuz90 vuz91) vuz30",fontsize=16,color="burlywood",shape="box"];3404[label="vuz30/Float vuz300 vuz301",fontsize=10,color="white",style="solid",shape="box"];60 -> 3404[label="",style="solid", color="burlywood", weight=9]; 3404 -> 67[label="",style="solid", color="burlywood", weight=3]; 61[label="primPlusDouble (Double vuz100 vuz101) vuz30",fontsize=16,color="burlywood",shape="box"];3405[label="vuz30/Double vuz300 vuz301",fontsize=10,color="white",style="solid",shape="box"];61 -> 3405[label="",style="solid", color="burlywood", weight=9]; 3405 -> 68[label="",style="solid", color="burlywood", weight=3]; 62[label="(+) Integer vuz110 Integer vuz300",fontsize=16,color="black",shape="box"];62 -> 69[label="",style="solid", color="black", weight=3]; 63[label="primPlusInt (Pos vuz120) vuz30",fontsize=16,color="burlywood",shape="box"];3406[label="vuz30/Pos vuz300",fontsize=10,color="white",style="solid",shape="box"];63 -> 3406[label="",style="solid", color="burlywood", weight=9]; 3406 -> 70[label="",style="solid", color="burlywood", weight=3]; 3407[label="vuz30/Neg vuz300",fontsize=10,color="white",style="solid",shape="box"];63 -> 3407[label="",style="solid", color="burlywood", weight=9]; 3407 -> 71[label="",style="solid", color="burlywood", weight=3]; 64[label="primPlusInt (Neg vuz120) vuz30",fontsize=16,color="burlywood",shape="box"];3408[label="vuz30/Pos vuz300",fontsize=10,color="white",style="solid",shape="box"];64 -> 3408[label="",style="solid", color="burlywood", weight=9]; 3408 -> 72[label="",style="solid", color="burlywood", weight=3]; 3409[label="vuz30/Neg vuz300",fontsize=10,color="white",style="solid",shape="box"];64 -> 3409[label="",style="solid", color="burlywood", weight=9]; 3409 -> 73[label="",style="solid", color="burlywood", weight=3]; 65[label="(+) vuz130 :% vuz131 vuz300 :% vuz301",fontsize=16,color="black",shape="box"];65 -> 74[label="",style="solid", color="black", weight=3]; 66[label="((+) vuz7 vuz80 `seq` foldl' (+) ((+) vuz7 vuz80))",fontsize=16,color="black",shape="box"];66 -> 75[label="",style="solid", color="black", weight=3]; 67[label="primPlusFloat (Float vuz90 vuz91) (Float vuz300 vuz301)",fontsize=16,color="black",shape="box"];67 -> 76[label="",style="solid", color="black", weight=3]; 68[label="primPlusDouble (Double vuz100 vuz101) (Double vuz300 vuz301)",fontsize=16,color="black",shape="box"];68 -> 77[label="",style="solid", color="black", weight=3]; 69[label="Integer (primPlusInt vuz110 vuz300)",fontsize=16,color="green",shape="box"];69 -> 78[label="",style="dashed", color="green", weight=3]; 70[label="primPlusInt (Pos vuz120) (Pos vuz300)",fontsize=16,color="black",shape="box"];70 -> 79[label="",style="solid", color="black", weight=3]; 71[label="primPlusInt (Pos vuz120) (Neg vuz300)",fontsize=16,color="black",shape="box"];71 -> 80[label="",style="solid", color="black", weight=3]; 72[label="primPlusInt (Neg vuz120) (Pos vuz300)",fontsize=16,color="black",shape="box"];72 -> 81[label="",style="solid", color="black", weight=3]; 73[label="primPlusInt (Neg vuz120) (Neg vuz300)",fontsize=16,color="black",shape="box"];73 -> 82[label="",style="solid", color="black", weight=3]; 74[label="reduce (vuz130 * vuz301 + vuz300 * vuz131) (vuz131 * vuz301)",fontsize=16,color="black",shape="box"];74 -> 83[label="",style="solid", color="black", weight=3]; 75 -> 21[label="",style="dashed", color="red", weight=0]; 75[label="enforceWHNF (WHNF ((+) vuz7 vuz80)) (foldl' (+) ((+) vuz7 vuz80)) vuz81",fontsize=16,color="magenta"];75 -> 84[label="",style="dashed", color="magenta", weight=3]; 75 -> 85[label="",style="dashed", color="magenta", weight=3]; 76[label="Float (vuz90 * vuz301 + vuz300 * vuz91) (vuz91 * vuz301)",fontsize=16,color="green",shape="box"];76 -> 86[label="",style="dashed", color="green", weight=3]; 76 -> 87[label="",style="dashed", color="green", weight=3]; 77[label="Double (vuz100 * vuz301 + vuz300 * vuz101) (vuz101 * vuz301)",fontsize=16,color="green",shape="box"];77 -> 88[label="",style="dashed", color="green", weight=3]; 77 -> 89[label="",style="dashed", color="green", weight=3]; 78 -> 54[label="",style="dashed", color="red", weight=0]; 78[label="primPlusInt vuz110 vuz300",fontsize=16,color="magenta"];78 -> 90[label="",style="dashed", color="magenta", weight=3]; 78 -> 91[label="",style="dashed", color="magenta", weight=3]; 79[label="Pos (primPlusNat vuz120 vuz300)",fontsize=16,color="green",shape="box"];79 -> 92[label="",style="dashed", color="green", weight=3]; 80[label="primMinusNat vuz120 vuz300",fontsize=16,color="burlywood",shape="triangle"];3410[label="vuz120/Succ vuz1200",fontsize=10,color="white",style="solid",shape="box"];80 -> 3410[label="",style="solid", color="burlywood", weight=9]; 3410 -> 93[label="",style="solid", color="burlywood", weight=3]; 3411[label="vuz120/Zero",fontsize=10,color="white",style="solid",shape="box"];80 -> 3411[label="",style="solid", color="burlywood", weight=9]; 3411 -> 94[label="",style="solid", color="burlywood", weight=3]; 81 -> 80[label="",style="dashed", color="red", weight=0]; 81[label="primMinusNat vuz300 vuz120",fontsize=16,color="magenta"];81 -> 95[label="",style="dashed", color="magenta", weight=3]; 81 -> 96[label="",style="dashed", color="magenta", weight=3]; 82[label="Neg (primPlusNat vuz120 vuz300)",fontsize=16,color="green",shape="box"];82 -> 97[label="",style="dashed", color="green", weight=3]; 83[label="reduce2 (vuz130 * vuz301 + vuz300 * vuz131) (vuz131 * vuz301)",fontsize=16,color="black",shape="box"];83 -> 98[label="",style="solid", color="black", weight=3]; 84[label="(+) vuz7 vuz80",fontsize=16,color="blue",shape="box"];3412[label="+ :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];84 -> 3412[label="",style="solid", color="blue", weight=9]; 3412 -> 99[label="",style="solid", color="blue", weight=3]; 3413[label="+ :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];84 -> 3413[label="",style="solid", color="blue", weight=9]; 3413 -> 100[label="",style="solid", color="blue", weight=3]; 3414[label="+ :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];84 -> 3414[label="",style="solid", color="blue", weight=9]; 3414 -> 101[label="",style="solid", color="blue", weight=3]; 3415[label="+ :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];84 -> 3415[label="",style="solid", color="blue", weight=9]; 3415 -> 102[label="",style="solid", color="blue", weight=3]; 3416[label="+ :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];84 -> 3416[label="",style="solid", color="blue", weight=9]; 3416 -> 103[label="",style="solid", color="blue", weight=3]; 85[label="vuz81",fontsize=16,color="green",shape="box"];86 -> 41[label="",style="dashed", color="red", weight=0]; 86[label="vuz90 * vuz301 + vuz300 * vuz91",fontsize=16,color="magenta"];86 -> 104[label="",style="dashed", color="magenta", weight=3]; 86 -> 105[label="",style="dashed", color="magenta", weight=3]; 87[label="vuz91 * vuz301",fontsize=16,color="black",shape="triangle"];87 -> 106[label="",style="solid", color="black", weight=3]; 88 -> 41[label="",style="dashed", color="red", weight=0]; 88[label="vuz100 * vuz301 + vuz300 * vuz101",fontsize=16,color="magenta"];88 -> 107[label="",style="dashed", color="magenta", weight=3]; 88 -> 108[label="",style="dashed", color="magenta", weight=3]; 89 -> 87[label="",style="dashed", color="red", weight=0]; 89[label="vuz101 * vuz301",fontsize=16,color="magenta"];89 -> 109[label="",style="dashed", color="magenta", weight=3]; 89 -> 110[label="",style="dashed", color="magenta", weight=3]; 90[label="vuz300",fontsize=16,color="green",shape="box"];91[label="vuz110",fontsize=16,color="green",shape="box"];92[label="primPlusNat vuz120 vuz300",fontsize=16,color="burlywood",shape="triangle"];3417[label="vuz120/Succ vuz1200",fontsize=10,color="white",style="solid",shape="box"];92 -> 3417[label="",style="solid", color="burlywood", weight=9]; 3417 -> 111[label="",style="solid", color="burlywood", weight=3]; 3418[label="vuz120/Zero",fontsize=10,color="white",style="solid",shape="box"];92 -> 3418[label="",style="solid", color="burlywood", weight=9]; 3418 -> 112[label="",style="solid", color="burlywood", weight=3]; 93[label="primMinusNat (Succ vuz1200) vuz300",fontsize=16,color="burlywood",shape="box"];3419[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];93 -> 3419[label="",style="solid", color="burlywood", weight=9]; 3419 -> 113[label="",style="solid", color="burlywood", weight=3]; 3420[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];93 -> 3420[label="",style="solid", color="burlywood", weight=9]; 3420 -> 114[label="",style="solid", color="burlywood", weight=3]; 94[label="primMinusNat Zero vuz300",fontsize=16,color="burlywood",shape="box"];3421[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];94 -> 3421[label="",style="solid", color="burlywood", weight=9]; 3421 -> 115[label="",style="solid", color="burlywood", weight=3]; 3422[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];94 -> 3422[label="",style="solid", color="burlywood", weight=9]; 3422 -> 116[label="",style="solid", color="burlywood", weight=3]; 95[label="vuz300",fontsize=16,color="green",shape="box"];96[label="vuz120",fontsize=16,color="green",shape="box"];97 -> 92[label="",style="dashed", color="red", weight=0]; 97[label="primPlusNat vuz120 vuz300",fontsize=16,color="magenta"];97 -> 117[label="",style="dashed", color="magenta", weight=3]; 97 -> 118[label="",style="dashed", color="magenta", weight=3]; 98 -> 119[label="",style="dashed", color="red", weight=0]; 98[label="reduce2Reduce1 (vuz130 * vuz301 + vuz300 * vuz131) (vuz131 * vuz301) (vuz130 * vuz301 + vuz300 * vuz131) (vuz131 * vuz301) (vuz131 * vuz301 == fromInt (Pos Zero))",fontsize=16,color="magenta"];98 -> 120[label="",style="dashed", color="magenta", weight=3]; 98 -> 121[label="",style="dashed", color="magenta", weight=3]; 98 -> 122[label="",style="dashed", color="magenta", weight=3]; 98 -> 123[label="",style="dashed", color="magenta", weight=3]; 98 -> 124[label="",style="dashed", color="magenta", weight=3]; 99 -> 35[label="",style="dashed", color="red", weight=0]; 99[label="(+) vuz7 vuz80",fontsize=16,color="magenta"];99 -> 125[label="",style="dashed", color="magenta", weight=3]; 99 -> 126[label="",style="dashed", color="magenta", weight=3]; 100 -> 37[label="",style="dashed", color="red", weight=0]; 100[label="(+) vuz7 vuz80",fontsize=16,color="magenta"];100 -> 127[label="",style="dashed", color="magenta", weight=3]; 100 -> 128[label="",style="dashed", color="magenta", weight=3]; 101 -> 39[label="",style="dashed", color="red", weight=0]; 101[label="(+) vuz7 vuz80",fontsize=16,color="magenta"];101 -> 129[label="",style="dashed", color="magenta", weight=3]; 101 -> 130[label="",style="dashed", color="magenta", weight=3]; 102 -> 41[label="",style="dashed", color="red", weight=0]; 102[label="(+) vuz7 vuz80",fontsize=16,color="magenta"];102 -> 131[label="",style="dashed", color="magenta", weight=3]; 102 -> 132[label="",style="dashed", color="magenta", weight=3]; 103 -> 43[label="",style="dashed", color="red", weight=0]; 103[label="(+) vuz7 vuz80",fontsize=16,color="magenta"];103 -> 133[label="",style="dashed", color="magenta", weight=3]; 103 -> 134[label="",style="dashed", color="magenta", weight=3]; 104 -> 87[label="",style="dashed", color="red", weight=0]; 104[label="vuz300 * vuz91",fontsize=16,color="magenta"];104 -> 135[label="",style="dashed", color="magenta", weight=3]; 104 -> 136[label="",style="dashed", color="magenta", weight=3]; 105 -> 87[label="",style="dashed", color="red", weight=0]; 105[label="vuz90 * vuz301",fontsize=16,color="magenta"];105 -> 137[label="",style="dashed", color="magenta", weight=3]; 106[label="primMulInt vuz91 vuz301",fontsize=16,color="burlywood",shape="triangle"];3423[label="vuz91/Pos vuz910",fontsize=10,color="white",style="solid",shape="box"];106 -> 3423[label="",style="solid", color="burlywood", weight=9]; 3423 -> 138[label="",style="solid", color="burlywood", weight=3]; 3424[label="vuz91/Neg vuz910",fontsize=10,color="white",style="solid",shape="box"];106 -> 3424[label="",style="solid", color="burlywood", weight=9]; 3424 -> 139[label="",style="solid", color="burlywood", weight=3]; 107 -> 87[label="",style="dashed", color="red", weight=0]; 107[label="vuz300 * vuz101",fontsize=16,color="magenta"];107 -> 140[label="",style="dashed", color="magenta", weight=3]; 107 -> 141[label="",style="dashed", color="magenta", weight=3]; 108 -> 87[label="",style="dashed", color="red", weight=0]; 108[label="vuz100 * vuz301",fontsize=16,color="magenta"];108 -> 142[label="",style="dashed", color="magenta", weight=3]; 108 -> 143[label="",style="dashed", color="magenta", weight=3]; 109[label="vuz301",fontsize=16,color="green",shape="box"];110[label="vuz101",fontsize=16,color="green",shape="box"];111[label="primPlusNat (Succ vuz1200) vuz300",fontsize=16,color="burlywood",shape="box"];3425[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];111 -> 3425[label="",style="solid", color="burlywood", weight=9]; 3425 -> 144[label="",style="solid", color="burlywood", weight=3]; 3426[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];111 -> 3426[label="",style="solid", color="burlywood", weight=9]; 3426 -> 145[label="",style="solid", color="burlywood", weight=3]; 112[label="primPlusNat Zero vuz300",fontsize=16,color="burlywood",shape="box"];3427[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];112 -> 3427[label="",style="solid", color="burlywood", weight=9]; 3427 -> 146[label="",style="solid", color="burlywood", weight=3]; 3428[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];112 -> 3428[label="",style="solid", color="burlywood", weight=9]; 3428 -> 147[label="",style="solid", color="burlywood", weight=3]; 113[label="primMinusNat (Succ vuz1200) (Succ vuz3000)",fontsize=16,color="black",shape="box"];113 -> 148[label="",style="solid", color="black", weight=3]; 114[label="primMinusNat (Succ vuz1200) Zero",fontsize=16,color="black",shape="box"];114 -> 149[label="",style="solid", color="black", weight=3]; 115[label="primMinusNat Zero (Succ vuz3000)",fontsize=16,color="black",shape="box"];115 -> 150[label="",style="solid", color="black", weight=3]; 116[label="primMinusNat Zero Zero",fontsize=16,color="black",shape="box"];116 -> 151[label="",style="solid", color="black", weight=3]; 117[label="vuz120",fontsize=16,color="green",shape="box"];118[label="vuz300",fontsize=16,color="green",shape="box"];120[label="vuz301",fontsize=16,color="green",shape="box"];121[label="vuz131",fontsize=16,color="green",shape="box"];122[label="vuz130",fontsize=16,color="green",shape="box"];123[label="vuz131 * vuz301 == fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];3429[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];123 -> 3429[label="",style="solid", color="blue", weight=9]; 3429 -> 152[label="",style="solid", color="blue", weight=3]; 3430[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];123 -> 3430[label="",style="solid", color="blue", weight=9]; 3430 -> 153[label="",style="solid", color="blue", weight=3]; 124[label="vuz300",fontsize=16,color="green",shape="box"];119[label="reduce2Reduce1 (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) vuz24",fontsize=16,color="burlywood",shape="triangle"];3431[label="vuz24/False",fontsize=10,color="white",style="solid",shape="box"];119 -> 3431[label="",style="solid", color="burlywood", weight=9]; 3431 -> 154[label="",style="solid", color="burlywood", weight=3]; 3432[label="vuz24/True",fontsize=10,color="white",style="solid",shape="box"];119 -> 3432[label="",style="solid", color="burlywood", weight=9]; 3432 -> 155[label="",style="solid", color="burlywood", weight=3]; 125[label="vuz7",fontsize=16,color="green",shape="box"];126[label="vuz80",fontsize=16,color="green",shape="box"];127[label="vuz80",fontsize=16,color="green",shape="box"];128[label="vuz7",fontsize=16,color="green",shape="box"];129[label="vuz7",fontsize=16,color="green",shape="box"];130[label="vuz80",fontsize=16,color="green",shape="box"];131[label="vuz80",fontsize=16,color="green",shape="box"];132[label="vuz7",fontsize=16,color="green",shape="box"];133[label="vuz80",fontsize=16,color="green",shape="box"];134[label="vuz7",fontsize=16,color="green",shape="box"];135[label="vuz91",fontsize=16,color="green",shape="box"];136[label="vuz300",fontsize=16,color="green",shape="box"];137[label="vuz90",fontsize=16,color="green",shape="box"];138[label="primMulInt (Pos vuz910) vuz301",fontsize=16,color="burlywood",shape="box"];3433[label="vuz301/Pos vuz3010",fontsize=10,color="white",style="solid",shape="box"];138 -> 3433[label="",style="solid", color="burlywood", weight=9]; 3433 -> 156[label="",style="solid", color="burlywood", weight=3]; 3434[label="vuz301/Neg vuz3010",fontsize=10,color="white",style="solid",shape="box"];138 -> 3434[label="",style="solid", color="burlywood", weight=9]; 3434 -> 157[label="",style="solid", color="burlywood", weight=3]; 139[label="primMulInt (Neg vuz910) vuz301",fontsize=16,color="burlywood",shape="box"];3435[label="vuz301/Pos vuz3010",fontsize=10,color="white",style="solid",shape="box"];139 -> 3435[label="",style="solid", color="burlywood", weight=9]; 3435 -> 158[label="",style="solid", color="burlywood", weight=3]; 3436[label="vuz301/Neg vuz3010",fontsize=10,color="white",style="solid",shape="box"];139 -> 3436[label="",style="solid", color="burlywood", weight=9]; 3436 -> 159[label="",style="solid", color="burlywood", weight=3]; 140[label="vuz101",fontsize=16,color="green",shape="box"];141[label="vuz300",fontsize=16,color="green",shape="box"];142[label="vuz301",fontsize=16,color="green",shape="box"];143[label="vuz100",fontsize=16,color="green",shape="box"];144[label="primPlusNat (Succ vuz1200) (Succ vuz3000)",fontsize=16,color="black",shape="box"];144 -> 160[label="",style="solid", color="black", weight=3]; 145[label="primPlusNat (Succ vuz1200) Zero",fontsize=16,color="black",shape="box"];145 -> 161[label="",style="solid", color="black", weight=3]; 146[label="primPlusNat Zero (Succ vuz3000)",fontsize=16,color="black",shape="box"];146 -> 162[label="",style="solid", color="black", weight=3]; 147[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];147 -> 163[label="",style="solid", color="black", weight=3]; 148 -> 80[label="",style="dashed", color="red", weight=0]; 148[label="primMinusNat vuz1200 vuz3000",fontsize=16,color="magenta"];148 -> 164[label="",style="dashed", color="magenta", weight=3]; 148 -> 165[label="",style="dashed", color="magenta", weight=3]; 149[label="Pos (Succ vuz1200)",fontsize=16,color="green",shape="box"];150[label="Neg (Succ vuz3000)",fontsize=16,color="green",shape="box"];151[label="Pos Zero",fontsize=16,color="green",shape="box"];152 -> 166[label="",style="dashed", color="red", weight=0]; 152[label="vuz131 * vuz301 == fromInt (Pos Zero)",fontsize=16,color="magenta"];152 -> 167[label="",style="dashed", color="magenta", weight=3]; 153 -> 168[label="",style="dashed", color="red", weight=0]; 153[label="vuz131 * vuz301 == fromInt (Pos Zero)",fontsize=16,color="magenta"];153 -> 169[label="",style="dashed", color="magenta", weight=3]; 153 -> 170[label="",style="dashed", color="magenta", weight=3]; 154[label="reduce2Reduce1 (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) False",fontsize=16,color="black",shape="box"];154 -> 171[label="",style="solid", color="black", weight=3]; 155[label="reduce2Reduce1 (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) True",fontsize=16,color="black",shape="box"];155 -> 172[label="",style="solid", color="black", weight=3]; 156[label="primMulInt (Pos vuz910) (Pos vuz3010)",fontsize=16,color="black",shape="box"];156 -> 173[label="",style="solid", color="black", weight=3]; 157[label="primMulInt (Pos vuz910) (Neg vuz3010)",fontsize=16,color="black",shape="box"];157 -> 174[label="",style="solid", color="black", weight=3]; 158[label="primMulInt (Neg vuz910) (Pos vuz3010)",fontsize=16,color="black",shape="box"];158 -> 175[label="",style="solid", color="black", weight=3]; 159[label="primMulInt (Neg vuz910) (Neg vuz3010)",fontsize=16,color="black",shape="box"];159 -> 176[label="",style="solid", color="black", weight=3]; 160[label="Succ (Succ (primPlusNat vuz1200 vuz3000))",fontsize=16,color="green",shape="box"];160 -> 177[label="",style="dashed", color="green", weight=3]; 161[label="Succ vuz1200",fontsize=16,color="green",shape="box"];162[label="Succ vuz3000",fontsize=16,color="green",shape="box"];163[label="Zero",fontsize=16,color="green",shape="box"];164[label="vuz1200",fontsize=16,color="green",shape="box"];165[label="vuz3000",fontsize=16,color="green",shape="box"];167 -> 12[label="",style="dashed", color="red", weight=0]; 167[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];166[label="vuz131 * vuz301 == vuz25",fontsize=16,color="burlywood",shape="triangle"];3437[label="vuz131/Integer vuz1310",fontsize=10,color="white",style="solid",shape="box"];166 -> 3437[label="",style="solid", color="burlywood", weight=9]; 3437 -> 178[label="",style="solid", color="burlywood", weight=3]; 169 -> 87[label="",style="dashed", color="red", weight=0]; 169[label="vuz131 * vuz301",fontsize=16,color="magenta"];169 -> 179[label="",style="dashed", color="magenta", weight=3]; 169 -> 180[label="",style="dashed", color="magenta", weight=3]; 170 -> 13[label="",style="dashed", color="red", weight=0]; 170[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];168[label="vuz27 == vuz26",fontsize=16,color="black",shape="triangle"];168 -> 181[label="",style="solid", color="black", weight=3]; 171[label="reduce2Reduce0 (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) otherwise",fontsize=16,color="black",shape="box"];171 -> 182[label="",style="solid", color="black", weight=3]; 172[label="error []",fontsize=16,color="black",shape="box"];172 -> 183[label="",style="solid", color="black", weight=3]; 173[label="Pos (primMulNat vuz910 vuz3010)",fontsize=16,color="green",shape="box"];173 -> 184[label="",style="dashed", color="green", weight=3]; 174[label="Neg (primMulNat vuz910 vuz3010)",fontsize=16,color="green",shape="box"];174 -> 185[label="",style="dashed", color="green", weight=3]; 175[label="Neg (primMulNat vuz910 vuz3010)",fontsize=16,color="green",shape="box"];175 -> 186[label="",style="dashed", color="green", weight=3]; 176[label="Pos (primMulNat vuz910 vuz3010)",fontsize=16,color="green",shape="box"];176 -> 187[label="",style="dashed", color="green", weight=3]; 177 -> 92[label="",style="dashed", color="red", weight=0]; 177[label="primPlusNat vuz1200 vuz3000",fontsize=16,color="magenta"];177 -> 188[label="",style="dashed", color="magenta", weight=3]; 177 -> 189[label="",style="dashed", color="magenta", weight=3]; 178[label="Integer vuz1310 * vuz301 == vuz25",fontsize=16,color="burlywood",shape="box"];3438[label="vuz301/Integer vuz3010",fontsize=10,color="white",style="solid",shape="box"];178 -> 3438[label="",style="solid", color="burlywood", weight=9]; 3438 -> 190[label="",style="solid", color="burlywood", weight=3]; 179[label="vuz301",fontsize=16,color="green",shape="box"];180[label="vuz131",fontsize=16,color="green",shape="box"];181[label="primEqInt vuz27 vuz26",fontsize=16,color="burlywood",shape="triangle"];3439[label="vuz27/Pos vuz270",fontsize=10,color="white",style="solid",shape="box"];181 -> 3439[label="",style="solid", color="burlywood", weight=9]; 3439 -> 191[label="",style="solid", color="burlywood", weight=3]; 3440[label="vuz27/Neg vuz270",fontsize=10,color="white",style="solid",shape="box"];181 -> 3440[label="",style="solid", color="burlywood", weight=9]; 3440 -> 192[label="",style="solid", color="burlywood", weight=3]; 182[label="reduce2Reduce0 (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) True",fontsize=16,color="black",shape="box"];182 -> 193[label="",style="solid", color="black", weight=3]; 183[label="error []",fontsize=16,color="red",shape="box"];184[label="primMulNat vuz910 vuz3010",fontsize=16,color="burlywood",shape="triangle"];3441[label="vuz910/Succ vuz9100",fontsize=10,color="white",style="solid",shape="box"];184 -> 3441[label="",style="solid", color="burlywood", weight=9]; 3441 -> 194[label="",style="solid", color="burlywood", weight=3]; 3442[label="vuz910/Zero",fontsize=10,color="white",style="solid",shape="box"];184 -> 3442[label="",style="solid", color="burlywood", weight=9]; 3442 -> 195[label="",style="solid", color="burlywood", weight=3]; 185 -> 184[label="",style="dashed", color="red", weight=0]; 185[label="primMulNat vuz910 vuz3010",fontsize=16,color="magenta"];185 -> 196[label="",style="dashed", color="magenta", weight=3]; 186 -> 184[label="",style="dashed", color="red", weight=0]; 186[label="primMulNat vuz910 vuz3010",fontsize=16,color="magenta"];186 -> 197[label="",style="dashed", color="magenta", weight=3]; 187 -> 184[label="",style="dashed", color="red", weight=0]; 187[label="primMulNat vuz910 vuz3010",fontsize=16,color="magenta"];187 -> 198[label="",style="dashed", color="magenta", weight=3]; 187 -> 199[label="",style="dashed", color="magenta", weight=3]; 188[label="vuz1200",fontsize=16,color="green",shape="box"];189[label="vuz3000",fontsize=16,color="green",shape="box"];190[label="Integer vuz1310 * Integer vuz3010 == vuz25",fontsize=16,color="black",shape="box"];190 -> 200[label="",style="solid", color="black", weight=3]; 191[label="primEqInt (Pos vuz270) vuz26",fontsize=16,color="burlywood",shape="box"];3443[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];191 -> 3443[label="",style="solid", color="burlywood", weight=9]; 3443 -> 201[label="",style="solid", color="burlywood", weight=3]; 3444[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];191 -> 3444[label="",style="solid", color="burlywood", weight=9]; 3444 -> 202[label="",style="solid", color="burlywood", weight=3]; 192[label="primEqInt (Neg vuz270) vuz26",fontsize=16,color="burlywood",shape="box"];3445[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];192 -> 3445[label="",style="solid", color="burlywood", weight=9]; 3445 -> 203[label="",style="solid", color="burlywood", weight=3]; 3446[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];192 -> 3446[label="",style="solid", color="burlywood", weight=9]; 3446 -> 204[label="",style="solid", color="burlywood", weight=3]; 193[label="(vuz20 * vuz21 + vuz22 * vuz23) `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) :% (vuz23 * vuz21 `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21))",fontsize=16,color="green",shape="box"];193 -> 205[label="",style="dashed", color="green", weight=3]; 193 -> 206[label="",style="dashed", color="green", weight=3]; 194[label="primMulNat (Succ vuz9100) vuz3010",fontsize=16,color="burlywood",shape="box"];3447[label="vuz3010/Succ vuz30100",fontsize=10,color="white",style="solid",shape="box"];194 -> 3447[label="",style="solid", color="burlywood", weight=9]; 3447 -> 207[label="",style="solid", color="burlywood", weight=3]; 3448[label="vuz3010/Zero",fontsize=10,color="white",style="solid",shape="box"];194 -> 3448[label="",style="solid", color="burlywood", weight=9]; 3448 -> 208[label="",style="solid", color="burlywood", weight=3]; 195[label="primMulNat Zero vuz3010",fontsize=16,color="burlywood",shape="box"];3449[label="vuz3010/Succ vuz30100",fontsize=10,color="white",style="solid",shape="box"];195 -> 3449[label="",style="solid", color="burlywood", weight=9]; 3449 -> 209[label="",style="solid", color="burlywood", weight=3]; 3450[label="vuz3010/Zero",fontsize=10,color="white",style="solid",shape="box"];195 -> 3450[label="",style="solid", color="burlywood", weight=9]; 3450 -> 210[label="",style="solid", color="burlywood", weight=3]; 196[label="vuz3010",fontsize=16,color="green",shape="box"];197[label="vuz910",fontsize=16,color="green",shape="box"];198[label="vuz910",fontsize=16,color="green",shape="box"];199[label="vuz3010",fontsize=16,color="green",shape="box"];200 -> 211[label="",style="dashed", color="red", weight=0]; 200[label="Integer (primMulInt vuz1310 vuz3010) == vuz25",fontsize=16,color="magenta"];200 -> 212[label="",style="dashed", color="magenta", weight=3]; 201[label="primEqInt (Pos (Succ vuz2700)) vuz26",fontsize=16,color="burlywood",shape="box"];3451[label="vuz26/Pos vuz260",fontsize=10,color="white",style="solid",shape="box"];201 -> 3451[label="",style="solid", color="burlywood", weight=9]; 3451 -> 213[label="",style="solid", color="burlywood", weight=3]; 3452[label="vuz26/Neg vuz260",fontsize=10,color="white",style="solid",shape="box"];201 -> 3452[label="",style="solid", color="burlywood", weight=9]; 3452 -> 214[label="",style="solid", color="burlywood", weight=3]; 202[label="primEqInt (Pos Zero) vuz26",fontsize=16,color="burlywood",shape="box"];3453[label="vuz26/Pos vuz260",fontsize=10,color="white",style="solid",shape="box"];202 -> 3453[label="",style="solid", color="burlywood", weight=9]; 3453 -> 215[label="",style="solid", color="burlywood", weight=3]; 3454[label="vuz26/Neg vuz260",fontsize=10,color="white",style="solid",shape="box"];202 -> 3454[label="",style="solid", color="burlywood", weight=9]; 3454 -> 216[label="",style="solid", color="burlywood", weight=3]; 203[label="primEqInt (Neg (Succ vuz2700)) vuz26",fontsize=16,color="burlywood",shape="box"];3455[label="vuz26/Pos vuz260",fontsize=10,color="white",style="solid",shape="box"];203 -> 3455[label="",style="solid", color="burlywood", weight=9]; 3455 -> 217[label="",style="solid", color="burlywood", weight=3]; 3456[label="vuz26/Neg vuz260",fontsize=10,color="white",style="solid",shape="box"];203 -> 3456[label="",style="solid", color="burlywood", weight=9]; 3456 -> 218[label="",style="solid", color="burlywood", weight=3]; 204[label="primEqInt (Neg Zero) vuz26",fontsize=16,color="burlywood",shape="box"];3457[label="vuz26/Pos vuz260",fontsize=10,color="white",style="solid",shape="box"];204 -> 3457[label="",style="solid", color="burlywood", weight=9]; 3457 -> 219[label="",style="solid", color="burlywood", weight=3]; 3458[label="vuz26/Neg vuz260",fontsize=10,color="white",style="solid",shape="box"];204 -> 3458[label="",style="solid", color="burlywood", weight=9]; 3458 -> 220[label="",style="solid", color="burlywood", weight=3]; 205[label="(vuz20 * vuz21 + vuz22 * vuz23) `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21)",fontsize=16,color="blue",shape="box"];3459[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];205 -> 3459[label="",style="solid", color="blue", weight=9]; 3459 -> 221[label="",style="solid", color="blue", weight=3]; 3460[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];205 -> 3460[label="",style="solid", color="blue", weight=9]; 3460 -> 222[label="",style="solid", color="blue", weight=3]; 206[label="vuz23 * vuz21 `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21)",fontsize=16,color="blue",shape="box"];3461[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];206 -> 3461[label="",style="solid", color="blue", weight=9]; 3461 -> 223[label="",style="solid", color="blue", weight=3]; 3462[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];206 -> 3462[label="",style="solid", color="blue", weight=9]; 3462 -> 224[label="",style="solid", color="blue", weight=3]; 207[label="primMulNat (Succ vuz9100) (Succ vuz30100)",fontsize=16,color="black",shape="box"];207 -> 225[label="",style="solid", color="black", weight=3]; 208[label="primMulNat (Succ vuz9100) Zero",fontsize=16,color="black",shape="box"];208 -> 226[label="",style="solid", color="black", weight=3]; 209[label="primMulNat Zero (Succ vuz30100)",fontsize=16,color="black",shape="box"];209 -> 227[label="",style="solid", color="black", weight=3]; 210[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];210 -> 228[label="",style="solid", color="black", weight=3]; 212 -> 106[label="",style="dashed", color="red", weight=0]; 212[label="primMulInt vuz1310 vuz3010",fontsize=16,color="magenta"];212 -> 229[label="",style="dashed", color="magenta", weight=3]; 212 -> 230[label="",style="dashed", color="magenta", weight=3]; 211[label="Integer vuz28 == vuz25",fontsize=16,color="burlywood",shape="triangle"];3463[label="vuz25/Integer vuz250",fontsize=10,color="white",style="solid",shape="box"];211 -> 3463[label="",style="solid", color="burlywood", weight=9]; 3463 -> 231[label="",style="solid", color="burlywood", weight=3]; 213[label="primEqInt (Pos (Succ vuz2700)) (Pos vuz260)",fontsize=16,color="burlywood",shape="box"];3464[label="vuz260/Succ vuz2600",fontsize=10,color="white",style="solid",shape="box"];213 -> 3464[label="",style="solid", color="burlywood", weight=9]; 3464 -> 232[label="",style="solid", color="burlywood", weight=3]; 3465[label="vuz260/Zero",fontsize=10,color="white",style="solid",shape="box"];213 -> 3465[label="",style="solid", color="burlywood", weight=9]; 3465 -> 233[label="",style="solid", color="burlywood", weight=3]; 214[label="primEqInt (Pos (Succ vuz2700)) (Neg vuz260)",fontsize=16,color="black",shape="box"];214 -> 234[label="",style="solid", color="black", weight=3]; 215[label="primEqInt (Pos Zero) (Pos vuz260)",fontsize=16,color="burlywood",shape="box"];3466[label="vuz260/Succ vuz2600",fontsize=10,color="white",style="solid",shape="box"];215 -> 3466[label="",style="solid", color="burlywood", weight=9]; 3466 -> 235[label="",style="solid", color="burlywood", weight=3]; 3467[label="vuz260/Zero",fontsize=10,color="white",style="solid",shape="box"];215 -> 3467[label="",style="solid", color="burlywood", weight=9]; 3467 -> 236[label="",style="solid", color="burlywood", weight=3]; 216[label="primEqInt (Pos Zero) (Neg vuz260)",fontsize=16,color="burlywood",shape="box"];3468[label="vuz260/Succ vuz2600",fontsize=10,color="white",style="solid",shape="box"];216 -> 3468[label="",style="solid", color="burlywood", weight=9]; 3468 -> 237[label="",style="solid", color="burlywood", weight=3]; 3469[label="vuz260/Zero",fontsize=10,color="white",style="solid",shape="box"];216 -> 3469[label="",style="solid", color="burlywood", weight=9]; 3469 -> 238[label="",style="solid", color="burlywood", weight=3]; 217[label="primEqInt (Neg (Succ vuz2700)) (Pos vuz260)",fontsize=16,color="black",shape="box"];217 -> 239[label="",style="solid", color="black", weight=3]; 218[label="primEqInt (Neg (Succ vuz2700)) (Neg vuz260)",fontsize=16,color="burlywood",shape="box"];3470[label="vuz260/Succ vuz2600",fontsize=10,color="white",style="solid",shape="box"];218 -> 3470[label="",style="solid", color="burlywood", weight=9]; 3470 -> 240[label="",style="solid", color="burlywood", weight=3]; 3471[label="vuz260/Zero",fontsize=10,color="white",style="solid",shape="box"];218 -> 3471[label="",style="solid", color="burlywood", weight=9]; 3471 -> 241[label="",style="solid", color="burlywood", weight=3]; 219[label="primEqInt (Neg Zero) (Pos vuz260)",fontsize=16,color="burlywood",shape="box"];3472[label="vuz260/Succ vuz2600",fontsize=10,color="white",style="solid",shape="box"];219 -> 3472[label="",style="solid", color="burlywood", weight=9]; 3472 -> 242[label="",style="solid", color="burlywood", weight=3]; 3473[label="vuz260/Zero",fontsize=10,color="white",style="solid",shape="box"];219 -> 3473[label="",style="solid", color="burlywood", weight=9]; 3473 -> 243[label="",style="solid", color="burlywood", weight=3]; 220[label="primEqInt (Neg Zero) (Neg vuz260)",fontsize=16,color="burlywood",shape="box"];3474[label="vuz260/Succ vuz2600",fontsize=10,color="white",style="solid",shape="box"];220 -> 3474[label="",style="solid", color="burlywood", weight=9]; 3474 -> 244[label="",style="solid", color="burlywood", weight=3]; 3475[label="vuz260/Zero",fontsize=10,color="white",style="solid",shape="box"];220 -> 3475[label="",style="solid", color="burlywood", weight=9]; 3475 -> 245[label="",style="solid", color="burlywood", weight=3]; 221 -> 246[label="",style="dashed", color="red", weight=0]; 221[label="(vuz20 * vuz21 + vuz22 * vuz23) `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21)",fontsize=16,color="magenta"];221 -> 247[label="",style="dashed", color="magenta", weight=3]; 221 -> 248[label="",style="dashed", color="magenta", weight=3]; 221 -> 249[label="",style="dashed", color="magenta", weight=3]; 222 -> 253[label="",style="dashed", color="red", weight=0]; 222[label="(vuz20 * vuz21 + vuz22 * vuz23) `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21)",fontsize=16,color="magenta"];222 -> 254[label="",style="dashed", color="magenta", weight=3]; 222 -> 255[label="",style="dashed", color="magenta", weight=3]; 223 -> 246[label="",style="dashed", color="red", weight=0]; 223[label="vuz23 * vuz21 `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21)",fontsize=16,color="magenta"];223 -> 250[label="",style="dashed", color="magenta", weight=3]; 223 -> 251[label="",style="dashed", color="magenta", weight=3]; 223 -> 252[label="",style="dashed", color="magenta", weight=3]; 224 -> 253[label="",style="dashed", color="red", weight=0]; 224[label="vuz23 * vuz21 `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21)",fontsize=16,color="magenta"];224 -> 256[label="",style="dashed", color="magenta", weight=3]; 224 -> 257[label="",style="dashed", color="magenta", weight=3]; 225 -> 92[label="",style="dashed", color="red", weight=0]; 225[label="primPlusNat (primMulNat vuz9100 (Succ vuz30100)) (Succ vuz30100)",fontsize=16,color="magenta"];225 -> 258[label="",style="dashed", color="magenta", weight=3]; 225 -> 259[label="",style="dashed", color="magenta", weight=3]; 226[label="Zero",fontsize=16,color="green",shape="box"];227[label="Zero",fontsize=16,color="green",shape="box"];228[label="Zero",fontsize=16,color="green",shape="box"];229[label="vuz3010",fontsize=16,color="green",shape="box"];230[label="vuz1310",fontsize=16,color="green",shape="box"];231[label="Integer vuz28 == Integer vuz250",fontsize=16,color="black",shape="box"];231 -> 260[label="",style="solid", color="black", weight=3]; 232[label="primEqInt (Pos (Succ vuz2700)) (Pos (Succ vuz2600))",fontsize=16,color="black",shape="box"];232 -> 261[label="",style="solid", color="black", weight=3]; 233[label="primEqInt (Pos (Succ vuz2700)) (Pos Zero)",fontsize=16,color="black",shape="box"];233 -> 262[label="",style="solid", color="black", weight=3]; 234[label="False",fontsize=16,color="green",shape="box"];235[label="primEqInt (Pos Zero) (Pos (Succ vuz2600))",fontsize=16,color="black",shape="box"];235 -> 263[label="",style="solid", color="black", weight=3]; 236[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];236 -> 264[label="",style="solid", color="black", weight=3]; 237[label="primEqInt (Pos Zero) (Neg (Succ vuz2600))",fontsize=16,color="black",shape="box"];237 -> 265[label="",style="solid", color="black", weight=3]; 238[label="primEqInt (Pos Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];238 -> 266[label="",style="solid", color="black", weight=3]; 239[label="False",fontsize=16,color="green",shape="box"];240[label="primEqInt (Neg (Succ vuz2700)) (Neg (Succ vuz2600))",fontsize=16,color="black",shape="box"];240 -> 267[label="",style="solid", color="black", weight=3]; 241[label="primEqInt (Neg (Succ vuz2700)) (Neg Zero)",fontsize=16,color="black",shape="box"];241 -> 268[label="",style="solid", color="black", weight=3]; 242[label="primEqInt (Neg Zero) (Pos (Succ vuz2600))",fontsize=16,color="black",shape="box"];242 -> 269[label="",style="solid", color="black", weight=3]; 243[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];243 -> 270[label="",style="solid", color="black", weight=3]; 244[label="primEqInt (Neg Zero) (Neg (Succ vuz2600))",fontsize=16,color="black",shape="box"];244 -> 271[label="",style="solid", color="black", weight=3]; 245[label="primEqInt (Neg Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];245 -> 272[label="",style="solid", color="black", weight=3]; 247 -> 41[label="",style="dashed", color="red", weight=0]; 247[label="vuz20 * vuz21 + vuz22 * vuz23",fontsize=16,color="magenta"];247 -> 273[label="",style="dashed", color="magenta", weight=3]; 247 -> 274[label="",style="dashed", color="magenta", weight=3]; 248 -> 41[label="",style="dashed", color="red", weight=0]; 248[label="vuz20 * vuz21 + vuz22 * vuz23",fontsize=16,color="magenta"];248 -> 275[label="",style="dashed", color="magenta", weight=3]; 248 -> 276[label="",style="dashed", color="magenta", weight=3]; 249 -> 87[label="",style="dashed", color="red", weight=0]; 249[label="vuz23 * vuz21",fontsize=16,color="magenta"];249 -> 277[label="",style="dashed", color="magenta", weight=3]; 249 -> 278[label="",style="dashed", color="magenta", weight=3]; 246[label="vuz29 `quot` reduce2D vuz31 vuz30",fontsize=16,color="black",shape="triangle"];246 -> 279[label="",style="solid", color="black", weight=3]; 254 -> 39[label="",style="dashed", color="red", weight=0]; 254[label="vuz20 * vuz21 + vuz22 * vuz23",fontsize=16,color="magenta"];254 -> 280[label="",style="dashed", color="magenta", weight=3]; 254 -> 281[label="",style="dashed", color="magenta", weight=3]; 255 -> 39[label="",style="dashed", color="red", weight=0]; 255[label="vuz20 * vuz21 + vuz22 * vuz23",fontsize=16,color="magenta"];255 -> 282[label="",style="dashed", color="magenta", weight=3]; 255 -> 283[label="",style="dashed", color="magenta", weight=3]; 253[label="vuz36 `quot` reduce2D vuz37 (vuz23 * vuz21)",fontsize=16,color="burlywood",shape="triangle"];3476[label="vuz36/Integer vuz360",fontsize=10,color="white",style="solid",shape="box"];253 -> 3476[label="",style="solid", color="burlywood", weight=9]; 3476 -> 284[label="",style="solid", color="burlywood", weight=3]; 250 -> 41[label="",style="dashed", color="red", weight=0]; 250[label="vuz20 * vuz21 + vuz22 * vuz23",fontsize=16,color="magenta"];250 -> 285[label="",style="dashed", color="magenta", weight=3]; 250 -> 286[label="",style="dashed", color="magenta", weight=3]; 251 -> 87[label="",style="dashed", color="red", weight=0]; 251[label="vuz23 * vuz21",fontsize=16,color="magenta"];251 -> 287[label="",style="dashed", color="magenta", weight=3]; 251 -> 288[label="",style="dashed", color="magenta", weight=3]; 252 -> 87[label="",style="dashed", color="red", weight=0]; 252[label="vuz23 * vuz21",fontsize=16,color="magenta"];252 -> 289[label="",style="dashed", color="magenta", weight=3]; 252 -> 290[label="",style="dashed", color="magenta", weight=3]; 256 -> 39[label="",style="dashed", color="red", weight=0]; 256[label="vuz20 * vuz21 + vuz22 * vuz23",fontsize=16,color="magenta"];256 -> 291[label="",style="dashed", color="magenta", weight=3]; 256 -> 292[label="",style="dashed", color="magenta", weight=3]; 257[label="vuz23 * vuz21",fontsize=16,color="burlywood",shape="triangle"];3477[label="vuz23/Integer vuz230",fontsize=10,color="white",style="solid",shape="box"];257 -> 3477[label="",style="solid", color="burlywood", weight=9]; 3477 -> 293[label="",style="solid", color="burlywood", weight=3]; 258 -> 184[label="",style="dashed", color="red", weight=0]; 258[label="primMulNat vuz9100 (Succ vuz30100)",fontsize=16,color="magenta"];258 -> 294[label="",style="dashed", color="magenta", weight=3]; 258 -> 295[label="",style="dashed", color="magenta", weight=3]; 259[label="Succ vuz30100",fontsize=16,color="green",shape="box"];260 -> 181[label="",style="dashed", color="red", weight=0]; 260[label="primEqInt vuz28 vuz250",fontsize=16,color="magenta"];260 -> 296[label="",style="dashed", color="magenta", weight=3]; 260 -> 297[label="",style="dashed", color="magenta", weight=3]; 261[label="primEqNat vuz2700 vuz2600",fontsize=16,color="burlywood",shape="triangle"];3478[label="vuz2700/Succ vuz27000",fontsize=10,color="white",style="solid",shape="box"];261 -> 3478[label="",style="solid", color="burlywood", weight=9]; 3478 -> 298[label="",style="solid", color="burlywood", weight=3]; 3479[label="vuz2700/Zero",fontsize=10,color="white",style="solid",shape="box"];261 -> 3479[label="",style="solid", color="burlywood", weight=9]; 3479 -> 299[label="",style="solid", color="burlywood", weight=3]; 262[label="False",fontsize=16,color="green",shape="box"];263[label="False",fontsize=16,color="green",shape="box"];264[label="True",fontsize=16,color="green",shape="box"];265[label="False",fontsize=16,color="green",shape="box"];266[label="True",fontsize=16,color="green",shape="box"];267 -> 261[label="",style="dashed", color="red", weight=0]; 267[label="primEqNat vuz2700 vuz2600",fontsize=16,color="magenta"];267 -> 300[label="",style="dashed", color="magenta", weight=3]; 267 -> 301[label="",style="dashed", color="magenta", weight=3]; 268[label="False",fontsize=16,color="green",shape="box"];269[label="False",fontsize=16,color="green",shape="box"];270[label="True",fontsize=16,color="green",shape="box"];271[label="False",fontsize=16,color="green",shape="box"];272[label="True",fontsize=16,color="green",shape="box"];273 -> 87[label="",style="dashed", color="red", weight=0]; 273[label="vuz22 * vuz23",fontsize=16,color="magenta"];273 -> 302[label="",style="dashed", color="magenta", weight=3]; 273 -> 303[label="",style="dashed", color="magenta", weight=3]; 274 -> 87[label="",style="dashed", color="red", weight=0]; 274[label="vuz20 * vuz21",fontsize=16,color="magenta"];274 -> 304[label="",style="dashed", color="magenta", weight=3]; 274 -> 305[label="",style="dashed", color="magenta", weight=3]; 275 -> 87[label="",style="dashed", color="red", weight=0]; 275[label="vuz22 * vuz23",fontsize=16,color="magenta"];275 -> 306[label="",style="dashed", color="magenta", weight=3]; 275 -> 307[label="",style="dashed", color="magenta", weight=3]; 276 -> 87[label="",style="dashed", color="red", weight=0]; 276[label="vuz20 * vuz21",fontsize=16,color="magenta"];276 -> 308[label="",style="dashed", color="magenta", weight=3]; 276 -> 309[label="",style="dashed", color="magenta", weight=3]; 277[label="vuz21",fontsize=16,color="green",shape="box"];278[label="vuz23",fontsize=16,color="green",shape="box"];279[label="primQuotInt vuz29 (reduce2D vuz31 vuz30)",fontsize=16,color="burlywood",shape="box"];3480[label="vuz29/Pos vuz290",fontsize=10,color="white",style="solid",shape="box"];279 -> 3480[label="",style="solid", color="burlywood", weight=9]; 3480 -> 310[label="",style="solid", color="burlywood", weight=3]; 3481[label="vuz29/Neg vuz290",fontsize=10,color="white",style="solid",shape="box"];279 -> 3481[label="",style="solid", color="burlywood", weight=9]; 3481 -> 311[label="",style="solid", color="burlywood", weight=3]; 280 -> 257[label="",style="dashed", color="red", weight=0]; 280[label="vuz20 * vuz21",fontsize=16,color="magenta"];280 -> 312[label="",style="dashed", color="magenta", weight=3]; 281 -> 257[label="",style="dashed", color="red", weight=0]; 281[label="vuz22 * vuz23",fontsize=16,color="magenta"];281 -> 313[label="",style="dashed", color="magenta", weight=3]; 281 -> 314[label="",style="dashed", color="magenta", weight=3]; 282 -> 257[label="",style="dashed", color="red", weight=0]; 282[label="vuz20 * vuz21",fontsize=16,color="magenta"];282 -> 315[label="",style="dashed", color="magenta", weight=3]; 283 -> 257[label="",style="dashed", color="red", weight=0]; 283[label="vuz22 * vuz23",fontsize=16,color="magenta"];283 -> 316[label="",style="dashed", color="magenta", weight=3]; 283 -> 317[label="",style="dashed", color="magenta", weight=3]; 284[label="Integer vuz360 `quot` reduce2D vuz37 (vuz23 * vuz21)",fontsize=16,color="black",shape="box"];284 -> 318[label="",style="solid", color="black", weight=3]; 285 -> 87[label="",style="dashed", color="red", weight=0]; 285[label="vuz22 * vuz23",fontsize=16,color="magenta"];285 -> 319[label="",style="dashed", color="magenta", weight=3]; 285 -> 320[label="",style="dashed", color="magenta", weight=3]; 286 -> 87[label="",style="dashed", color="red", weight=0]; 286[label="vuz20 * vuz21",fontsize=16,color="magenta"];286 -> 321[label="",style="dashed", color="magenta", weight=3]; 286 -> 322[label="",style="dashed", color="magenta", weight=3]; 287[label="vuz21",fontsize=16,color="green",shape="box"];288[label="vuz23",fontsize=16,color="green",shape="box"];289[label="vuz21",fontsize=16,color="green",shape="box"];290[label="vuz23",fontsize=16,color="green",shape="box"];291 -> 257[label="",style="dashed", color="red", weight=0]; 291[label="vuz20 * vuz21",fontsize=16,color="magenta"];291 -> 323[label="",style="dashed", color="magenta", weight=3]; 292 -> 257[label="",style="dashed", color="red", weight=0]; 292[label="vuz22 * vuz23",fontsize=16,color="magenta"];292 -> 324[label="",style="dashed", color="magenta", weight=3]; 292 -> 325[label="",style="dashed", color="magenta", weight=3]; 293[label="Integer vuz230 * vuz21",fontsize=16,color="burlywood",shape="box"];3482[label="vuz21/Integer vuz210",fontsize=10,color="white",style="solid",shape="box"];293 -> 3482[label="",style="solid", color="burlywood", weight=9]; 3482 -> 326[label="",style="solid", color="burlywood", weight=3]; 294[label="vuz9100",fontsize=16,color="green",shape="box"];295[label="Succ vuz30100",fontsize=16,color="green",shape="box"];296[label="vuz28",fontsize=16,color="green",shape="box"];297[label="vuz250",fontsize=16,color="green",shape="box"];298[label="primEqNat (Succ vuz27000) vuz2600",fontsize=16,color="burlywood",shape="box"];3483[label="vuz2600/Succ vuz26000",fontsize=10,color="white",style="solid",shape="box"];298 -> 3483[label="",style="solid", color="burlywood", weight=9]; 3483 -> 327[label="",style="solid", color="burlywood", weight=3]; 3484[label="vuz2600/Zero",fontsize=10,color="white",style="solid",shape="box"];298 -> 3484[label="",style="solid", color="burlywood", weight=9]; 3484 -> 328[label="",style="solid", color="burlywood", weight=3]; 299[label="primEqNat Zero vuz2600",fontsize=16,color="burlywood",shape="box"];3485[label="vuz2600/Succ vuz26000",fontsize=10,color="white",style="solid",shape="box"];299 -> 3485[label="",style="solid", color="burlywood", weight=9]; 3485 -> 329[label="",style="solid", color="burlywood", weight=3]; 3486[label="vuz2600/Zero",fontsize=10,color="white",style="solid",shape="box"];299 -> 3486[label="",style="solid", color="burlywood", weight=9]; 3486 -> 330[label="",style="solid", color="burlywood", weight=3]; 300[label="vuz2700",fontsize=16,color="green",shape="box"];301[label="vuz2600",fontsize=16,color="green",shape="box"];302[label="vuz23",fontsize=16,color="green",shape="box"];303[label="vuz22",fontsize=16,color="green",shape="box"];304[label="vuz21",fontsize=16,color="green",shape="box"];305[label="vuz20",fontsize=16,color="green",shape="box"];306[label="vuz23",fontsize=16,color="green",shape="box"];307[label="vuz22",fontsize=16,color="green",shape="box"];308[label="vuz21",fontsize=16,color="green",shape="box"];309[label="vuz20",fontsize=16,color="green",shape="box"];310[label="primQuotInt (Pos vuz290) (reduce2D vuz31 vuz30)",fontsize=16,color="black",shape="box"];310 -> 331[label="",style="solid", color="black", weight=3]; 311[label="primQuotInt (Neg vuz290) (reduce2D vuz31 vuz30)",fontsize=16,color="black",shape="box"];311 -> 332[label="",style="solid", color="black", weight=3]; 312[label="vuz20",fontsize=16,color="green",shape="box"];313[label="vuz23",fontsize=16,color="green",shape="box"];314[label="vuz22",fontsize=16,color="green",shape="box"];315[label="vuz20",fontsize=16,color="green",shape="box"];316[label="vuz23",fontsize=16,color="green",shape="box"];317[label="vuz22",fontsize=16,color="green",shape="box"];318 -> 333[label="",style="dashed", color="red", weight=0]; 318[label="Integer vuz360 `quot` gcd vuz37 (vuz23 * vuz21)",fontsize=16,color="magenta"];318 -> 334[label="",style="dashed", color="magenta", weight=3]; 319[label="vuz23",fontsize=16,color="green",shape="box"];320[label="vuz22",fontsize=16,color="green",shape="box"];321[label="vuz21",fontsize=16,color="green",shape="box"];322[label="vuz20",fontsize=16,color="green",shape="box"];323[label="vuz20",fontsize=16,color="green",shape="box"];324[label="vuz23",fontsize=16,color="green",shape="box"];325[label="vuz22",fontsize=16,color="green",shape="box"];326[label="Integer vuz230 * Integer vuz210",fontsize=16,color="black",shape="box"];326 -> 335[label="",style="solid", color="black", weight=3]; 327[label="primEqNat (Succ vuz27000) (Succ vuz26000)",fontsize=16,color="black",shape="box"];327 -> 336[label="",style="solid", color="black", weight=3]; 328[label="primEqNat (Succ vuz27000) Zero",fontsize=16,color="black",shape="box"];328 -> 337[label="",style="solid", color="black", weight=3]; 329[label="primEqNat Zero (Succ vuz26000)",fontsize=16,color="black",shape="box"];329 -> 338[label="",style="solid", color="black", weight=3]; 330[label="primEqNat Zero Zero",fontsize=16,color="black",shape="box"];330 -> 339[label="",style="solid", color="black", weight=3]; 331 -> 430[label="",style="dashed", color="red", weight=0]; 331[label="primQuotInt (Pos vuz290) (gcd vuz31 vuz30)",fontsize=16,color="magenta"];331 -> 431[label="",style="dashed", color="magenta", weight=3]; 332 -> 458[label="",style="dashed", color="red", weight=0]; 332[label="primQuotInt (Neg vuz290) (gcd vuz31 vuz30)",fontsize=16,color="magenta"];332 -> 459[label="",style="dashed", color="magenta", weight=3]; 334 -> 257[label="",style="dashed", color="red", weight=0]; 334[label="vuz23 * vuz21",fontsize=16,color="magenta"];333[label="Integer vuz360 `quot` gcd vuz37 vuz38",fontsize=16,color="black",shape="triangle"];333 -> 342[label="",style="solid", color="black", weight=3]; 335[label="Integer (primMulInt vuz230 vuz210)",fontsize=16,color="green",shape="box"];335 -> 343[label="",style="dashed", color="green", weight=3]; 336 -> 261[label="",style="dashed", color="red", weight=0]; 336[label="primEqNat vuz27000 vuz26000",fontsize=16,color="magenta"];336 -> 344[label="",style="dashed", color="magenta", weight=3]; 336 -> 345[label="",style="dashed", color="magenta", weight=3]; 337[label="False",fontsize=16,color="green",shape="box"];338[label="False",fontsize=16,color="green",shape="box"];339[label="True",fontsize=16,color="green",shape="box"];431[label="gcd vuz31 vuz30",fontsize=16,color="black",shape="triangle"];431 -> 447[label="",style="solid", color="black", weight=3]; 430[label="primQuotInt (Pos vuz290) vuz56",fontsize=16,color="burlywood",shape="triangle"];3487[label="vuz56/Pos vuz560",fontsize=10,color="white",style="solid",shape="box"];430 -> 3487[label="",style="solid", color="burlywood", weight=9]; 3487 -> 448[label="",style="solid", color="burlywood", weight=3]; 3488[label="vuz56/Neg vuz560",fontsize=10,color="white",style="solid",shape="box"];430 -> 3488[label="",style="solid", color="burlywood", weight=9]; 3488 -> 449[label="",style="solid", color="burlywood", weight=3]; 459 -> 431[label="",style="dashed", color="red", weight=0]; 459[label="gcd vuz31 vuz30",fontsize=16,color="magenta"];458[label="primQuotInt (Neg vuz290) vuz59",fontsize=16,color="burlywood",shape="triangle"];3489[label="vuz59/Pos vuz590",fontsize=10,color="white",style="solid",shape="box"];458 -> 3489[label="",style="solid", color="burlywood", weight=9]; 3489 -> 475[label="",style="solid", color="burlywood", weight=3]; 3490[label="vuz59/Neg vuz590",fontsize=10,color="white",style="solid",shape="box"];458 -> 3490[label="",style="solid", color="burlywood", weight=9]; 3490 -> 476[label="",style="solid", color="burlywood", weight=3]; 342[label="Integer vuz360 `quot` gcd3 vuz37 vuz38",fontsize=16,color="black",shape="box"];342 -> 348[label="",style="solid", color="black", weight=3]; 343 -> 106[label="",style="dashed", color="red", weight=0]; 343[label="primMulInt vuz230 vuz210",fontsize=16,color="magenta"];343 -> 349[label="",style="dashed", color="magenta", weight=3]; 343 -> 350[label="",style="dashed", color="magenta", weight=3]; 344[label="vuz27000",fontsize=16,color="green",shape="box"];345[label="vuz26000",fontsize=16,color="green",shape="box"];447[label="gcd3 vuz31 vuz30",fontsize=16,color="black",shape="box"];447 -> 453[label="",style="solid", color="black", weight=3]; 448[label="primQuotInt (Pos vuz290) (Pos vuz560)",fontsize=16,color="burlywood",shape="box"];3491[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];448 -> 3491[label="",style="solid", color="burlywood", weight=9]; 3491 -> 454[label="",style="solid", color="burlywood", weight=3]; 3492[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];448 -> 3492[label="",style="solid", color="burlywood", weight=9]; 3492 -> 455[label="",style="solid", color="burlywood", weight=3]; 449[label="primQuotInt (Pos vuz290) (Neg vuz560)",fontsize=16,color="burlywood",shape="box"];3493[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];449 -> 3493[label="",style="solid", color="burlywood", weight=9]; 3493 -> 456[label="",style="solid", color="burlywood", weight=3]; 3494[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];449 -> 3494[label="",style="solid", color="burlywood", weight=9]; 3494 -> 457[label="",style="solid", color="burlywood", weight=3]; 475[label="primQuotInt (Neg vuz290) (Pos vuz590)",fontsize=16,color="burlywood",shape="box"];3495[label="vuz590/Succ vuz5900",fontsize=10,color="white",style="solid",shape="box"];475 -> 3495[label="",style="solid", color="burlywood", weight=9]; 3495 -> 479[label="",style="solid", color="burlywood", weight=3]; 3496[label="vuz590/Zero",fontsize=10,color="white",style="solid",shape="box"];475 -> 3496[label="",style="solid", color="burlywood", weight=9]; 3496 -> 480[label="",style="solid", color="burlywood", weight=3]; 476[label="primQuotInt (Neg vuz290) (Neg vuz590)",fontsize=16,color="burlywood",shape="box"];3497[label="vuz590/Succ vuz5900",fontsize=10,color="white",style="solid",shape="box"];476 -> 3497[label="",style="solid", color="burlywood", weight=9]; 3497 -> 481[label="",style="solid", color="burlywood", weight=3]; 3498[label="vuz590/Zero",fontsize=10,color="white",style="solid",shape="box"];476 -> 3498[label="",style="solid", color="burlywood", weight=9]; 3498 -> 482[label="",style="solid", color="burlywood", weight=3]; 348 -> 355[label="",style="dashed", color="red", weight=0]; 348[label="Integer vuz360 `quot` gcd2 (vuz37 == fromInt (Pos Zero)) vuz37 vuz38",fontsize=16,color="magenta"];348 -> 356[label="",style="dashed", color="magenta", weight=3]; 349[label="vuz210",fontsize=16,color="green",shape="box"];350[label="vuz230",fontsize=16,color="green",shape="box"];453 -> 477[label="",style="dashed", color="red", weight=0]; 453[label="gcd2 (vuz31 == fromInt (Pos Zero)) vuz31 vuz30",fontsize=16,color="magenta"];453 -> 478[label="",style="dashed", color="magenta", weight=3]; 454[label="primQuotInt (Pos vuz290) (Pos (Succ vuz5600))",fontsize=16,color="black",shape="box"];454 -> 483[label="",style="solid", color="black", weight=3]; 455[label="primQuotInt (Pos vuz290) (Pos Zero)",fontsize=16,color="black",shape="box"];455 -> 484[label="",style="solid", color="black", weight=3]; 456[label="primQuotInt (Pos vuz290) (Neg (Succ vuz5600))",fontsize=16,color="black",shape="box"];456 -> 485[label="",style="solid", color="black", weight=3]; 457[label="primQuotInt (Pos vuz290) (Neg Zero)",fontsize=16,color="black",shape="box"];457 -> 486[label="",style="solid", color="black", weight=3]; 479[label="primQuotInt (Neg vuz290) (Pos (Succ vuz5900))",fontsize=16,color="black",shape="box"];479 -> 493[label="",style="solid", color="black", weight=3]; 480[label="primQuotInt (Neg vuz290) (Pos Zero)",fontsize=16,color="black",shape="box"];480 -> 494[label="",style="solid", color="black", weight=3]; 481[label="primQuotInt (Neg vuz290) (Neg (Succ vuz5900))",fontsize=16,color="black",shape="box"];481 -> 495[label="",style="solid", color="black", weight=3]; 482[label="primQuotInt (Neg vuz290) (Neg Zero)",fontsize=16,color="black",shape="box"];482 -> 496[label="",style="solid", color="black", weight=3]; 356 -> 12[label="",style="dashed", color="red", weight=0]; 356[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];355[label="Integer vuz360 `quot` gcd2 (vuz37 == vuz43) vuz37 vuz38",fontsize=16,color="burlywood",shape="triangle"];3499[label="vuz37/Integer vuz370",fontsize=10,color="white",style="solid",shape="box"];355 -> 3499[label="",style="solid", color="burlywood", weight=9]; 3499 -> 365[label="",style="solid", color="burlywood", weight=3]; 478 -> 168[label="",style="dashed", color="red", weight=0]; 478[label="vuz31 == fromInt (Pos Zero)",fontsize=16,color="magenta"];478 -> 487[label="",style="dashed", color="magenta", weight=3]; 478 -> 488[label="",style="dashed", color="magenta", weight=3]; 477[label="gcd2 vuz60 vuz31 vuz30",fontsize=16,color="burlywood",shape="triangle"];3500[label="vuz60/False",fontsize=10,color="white",style="solid",shape="box"];477 -> 3500[label="",style="solid", color="burlywood", weight=9]; 3500 -> 489[label="",style="solid", color="burlywood", weight=3]; 3501[label="vuz60/True",fontsize=10,color="white",style="solid",shape="box"];477 -> 3501[label="",style="solid", color="burlywood", weight=9]; 3501 -> 490[label="",style="solid", color="burlywood", weight=3]; 483[label="Pos (primDivNatS vuz290 (Succ vuz5600))",fontsize=16,color="green",shape="box"];483 -> 497[label="",style="dashed", color="green", weight=3]; 484[label="error []",fontsize=16,color="black",shape="triangle"];484 -> 498[label="",style="solid", color="black", weight=3]; 485[label="Neg (primDivNatS vuz290 (Succ vuz5600))",fontsize=16,color="green",shape="box"];485 -> 499[label="",style="dashed", color="green", weight=3]; 486 -> 484[label="",style="dashed", color="red", weight=0]; 486[label="error []",fontsize=16,color="magenta"];493[label="Neg (primDivNatS vuz290 (Succ vuz5900))",fontsize=16,color="green",shape="box"];493 -> 504[label="",style="dashed", color="green", weight=3]; 494 -> 484[label="",style="dashed", color="red", weight=0]; 494[label="error []",fontsize=16,color="magenta"];495[label="Pos (primDivNatS vuz290 (Succ vuz5900))",fontsize=16,color="green",shape="box"];495 -> 505[label="",style="dashed", color="green", weight=3]; 496 -> 484[label="",style="dashed", color="red", weight=0]; 496[label="error []",fontsize=16,color="magenta"];365[label="Integer vuz360 `quot` gcd2 (Integer vuz370 == vuz43) (Integer vuz370) vuz38",fontsize=16,color="burlywood",shape="box"];3502[label="vuz43/Integer vuz430",fontsize=10,color="white",style="solid",shape="box"];365 -> 3502[label="",style="solid", color="burlywood", weight=9]; 3502 -> 370[label="",style="solid", color="burlywood", weight=3]; 487[label="vuz31",fontsize=16,color="green",shape="box"];488 -> 13[label="",style="dashed", color="red", weight=0]; 488[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];489[label="gcd2 False vuz31 vuz30",fontsize=16,color="black",shape="box"];489 -> 500[label="",style="solid", color="black", weight=3]; 490[label="gcd2 True vuz31 vuz30",fontsize=16,color="black",shape="box"];490 -> 501[label="",style="solid", color="black", weight=3]; 497[label="primDivNatS vuz290 (Succ vuz5600)",fontsize=16,color="burlywood",shape="triangle"];3503[label="vuz290/Succ vuz2900",fontsize=10,color="white",style="solid",shape="box"];497 -> 3503[label="",style="solid", color="burlywood", weight=9]; 3503 -> 506[label="",style="solid", color="burlywood", weight=3]; 3504[label="vuz290/Zero",fontsize=10,color="white",style="solid",shape="box"];497 -> 3504[label="",style="solid", color="burlywood", weight=9]; 3504 -> 507[label="",style="solid", color="burlywood", weight=3]; 498[label="error []",fontsize=16,color="red",shape="box"];499 -> 497[label="",style="dashed", color="red", weight=0]; 499[label="primDivNatS vuz290 (Succ vuz5600)",fontsize=16,color="magenta"];499 -> 508[label="",style="dashed", color="magenta", weight=3]; 504 -> 497[label="",style="dashed", color="red", weight=0]; 504[label="primDivNatS vuz290 (Succ vuz5900)",fontsize=16,color="magenta"];504 -> 512[label="",style="dashed", color="magenta", weight=3]; 504 -> 513[label="",style="dashed", color="magenta", weight=3]; 505 -> 497[label="",style="dashed", color="red", weight=0]; 505[label="primDivNatS vuz290 (Succ vuz5900)",fontsize=16,color="magenta"];505 -> 514[label="",style="dashed", color="magenta", weight=3]; 505 -> 515[label="",style="dashed", color="magenta", weight=3]; 370[label="Integer vuz360 `quot` gcd2 (Integer vuz370 == Integer vuz430) (Integer vuz370) vuz38",fontsize=16,color="black",shape="box"];370 -> 377[label="",style="solid", color="black", weight=3]; 500[label="gcd0 vuz31 vuz30",fontsize=16,color="black",shape="triangle"];500 -> 509[label="",style="solid", color="black", weight=3]; 501 -> 510[label="",style="dashed", color="red", weight=0]; 501[label="gcd1 (vuz30 == fromInt (Pos Zero)) vuz31 vuz30",fontsize=16,color="magenta"];501 -> 511[label="",style="dashed", color="magenta", weight=3]; 506[label="primDivNatS (Succ vuz2900) (Succ vuz5600)",fontsize=16,color="black",shape="box"];506 -> 516[label="",style="solid", color="black", weight=3]; 507[label="primDivNatS Zero (Succ vuz5600)",fontsize=16,color="black",shape="box"];507 -> 517[label="",style="solid", color="black", weight=3]; 508[label="vuz5600",fontsize=16,color="green",shape="box"];512[label="vuz290",fontsize=16,color="green",shape="box"];513[label="vuz5900",fontsize=16,color="green",shape="box"];514[label="vuz290",fontsize=16,color="green",shape="box"];515[label="vuz5900",fontsize=16,color="green",shape="box"];377 -> 388[label="",style="dashed", color="red", weight=0]; 377[label="Integer vuz360 `quot` gcd2 (primEqInt vuz370 vuz430) (Integer vuz370) vuz38",fontsize=16,color="magenta"];377 -> 389[label="",style="dashed", color="magenta", weight=3]; 509[label="gcd0Gcd' (abs vuz31) (abs vuz30)",fontsize=16,color="black",shape="box"];509 -> 518[label="",style="solid", color="black", weight=3]; 511 -> 168[label="",style="dashed", color="red", weight=0]; 511[label="vuz30 == fromInt (Pos Zero)",fontsize=16,color="magenta"];511 -> 519[label="",style="dashed", color="magenta", weight=3]; 511 -> 520[label="",style="dashed", color="magenta", weight=3]; 510[label="gcd1 vuz63 vuz31 vuz30",fontsize=16,color="burlywood",shape="triangle"];3505[label="vuz63/False",fontsize=10,color="white",style="solid",shape="box"];510 -> 3505[label="",style="solid", color="burlywood", weight=9]; 3505 -> 521[label="",style="solid", color="burlywood", weight=3]; 3506[label="vuz63/True",fontsize=10,color="white",style="solid",shape="box"];510 -> 3506[label="",style="solid", color="burlywood", weight=9]; 3506 -> 522[label="",style="solid", color="burlywood", weight=3]; 516[label="primDivNatS0 vuz2900 vuz5600 (primGEqNatS vuz2900 vuz5600)",fontsize=16,color="burlywood",shape="box"];3507[label="vuz2900/Succ vuz29000",fontsize=10,color="white",style="solid",shape="box"];516 -> 3507[label="",style="solid", color="burlywood", weight=9]; 3507 -> 525[label="",style="solid", color="burlywood", weight=3]; 3508[label="vuz2900/Zero",fontsize=10,color="white",style="solid",shape="box"];516 -> 3508[label="",style="solid", color="burlywood", weight=9]; 3508 -> 526[label="",style="solid", color="burlywood", weight=3]; 517[label="Zero",fontsize=16,color="green",shape="box"];389 -> 181[label="",style="dashed", color="red", weight=0]; 389[label="primEqInt vuz370 vuz430",fontsize=16,color="magenta"];389 -> 396[label="",style="dashed", color="magenta", weight=3]; 389 -> 397[label="",style="dashed", color="magenta", weight=3]; 388[label="Integer vuz360 `quot` gcd2 vuz48 (Integer vuz370) vuz38",fontsize=16,color="burlywood",shape="triangle"];3509[label="vuz48/False",fontsize=10,color="white",style="solid",shape="box"];388 -> 3509[label="",style="solid", color="burlywood", weight=9]; 3509 -> 398[label="",style="solid", color="burlywood", weight=3]; 3510[label="vuz48/True",fontsize=10,color="white",style="solid",shape="box"];388 -> 3510[label="",style="solid", color="burlywood", weight=9]; 3510 -> 399[label="",style="solid", color="burlywood", weight=3]; 518[label="gcd0Gcd'2 (abs vuz31) (abs vuz30)",fontsize=16,color="black",shape="box"];518 -> 527[label="",style="solid", color="black", weight=3]; 519[label="vuz30",fontsize=16,color="green",shape="box"];520 -> 13[label="",style="dashed", color="red", weight=0]; 520[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];521[label="gcd1 False vuz31 vuz30",fontsize=16,color="black",shape="box"];521 -> 528[label="",style="solid", color="black", weight=3]; 522[label="gcd1 True vuz31 vuz30",fontsize=16,color="black",shape="box"];522 -> 529[label="",style="solid", color="black", weight=3]; 525[label="primDivNatS0 (Succ vuz29000) vuz5600 (primGEqNatS (Succ vuz29000) vuz5600)",fontsize=16,color="burlywood",shape="box"];3511[label="vuz5600/Succ vuz56000",fontsize=10,color="white",style="solid",shape="box"];525 -> 3511[label="",style="solid", color="burlywood", weight=9]; 3511 -> 532[label="",style="solid", color="burlywood", weight=3]; 3512[label="vuz5600/Zero",fontsize=10,color="white",style="solid",shape="box"];525 -> 3512[label="",style="solid", color="burlywood", weight=9]; 3512 -> 533[label="",style="solid", color="burlywood", weight=3]; 526[label="primDivNatS0 Zero vuz5600 (primGEqNatS Zero vuz5600)",fontsize=16,color="burlywood",shape="box"];3513[label="vuz5600/Succ vuz56000",fontsize=10,color="white",style="solid",shape="box"];526 -> 3513[label="",style="solid", color="burlywood", weight=9]; 3513 -> 534[label="",style="solid", color="burlywood", weight=3]; 3514[label="vuz5600/Zero",fontsize=10,color="white",style="solid",shape="box"];526 -> 3514[label="",style="solid", color="burlywood", weight=9]; 3514 -> 535[label="",style="solid", color="burlywood", weight=3]; 396[label="vuz370",fontsize=16,color="green",shape="box"];397[label="vuz430",fontsize=16,color="green",shape="box"];398[label="Integer vuz360 `quot` gcd2 False (Integer vuz370) vuz38",fontsize=16,color="black",shape="box"];398 -> 406[label="",style="solid", color="black", weight=3]; 399[label="Integer vuz360 `quot` gcd2 True (Integer vuz370) vuz38",fontsize=16,color="black",shape="box"];399 -> 407[label="",style="solid", color="black", weight=3]; 527 -> 536[label="",style="dashed", color="red", weight=0]; 527[label="gcd0Gcd'1 (abs vuz30 == fromInt (Pos Zero)) (abs vuz31) (abs vuz30)",fontsize=16,color="magenta"];527 -> 537[label="",style="dashed", color="magenta", weight=3]; 528 -> 500[label="",style="dashed", color="red", weight=0]; 528[label="gcd0 vuz31 vuz30",fontsize=16,color="magenta"];529 -> 484[label="",style="dashed", color="red", weight=0]; 529[label="error []",fontsize=16,color="magenta"];532[label="primDivNatS0 (Succ vuz29000) (Succ vuz56000) (primGEqNatS (Succ vuz29000) (Succ vuz56000))",fontsize=16,color="black",shape="box"];532 -> 538[label="",style="solid", color="black", weight=3]; 533[label="primDivNatS0 (Succ vuz29000) Zero (primGEqNatS (Succ vuz29000) Zero)",fontsize=16,color="black",shape="box"];533 -> 539[label="",style="solid", color="black", weight=3]; 534[label="primDivNatS0 Zero (Succ vuz56000) (primGEqNatS Zero (Succ vuz56000))",fontsize=16,color="black",shape="box"];534 -> 540[label="",style="solid", color="black", weight=3]; 535[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];535 -> 541[label="",style="solid", color="black", weight=3]; 406[label="Integer vuz360 `quot` gcd0 (Integer vuz370) vuz38",fontsize=16,color="black",shape="triangle"];406 -> 416[label="",style="solid", color="black", weight=3]; 407 -> 417[label="",style="dashed", color="red", weight=0]; 407[label="Integer vuz360 `quot` gcd1 (vuz38 == fromInt (Pos Zero)) (Integer vuz370) vuz38",fontsize=16,color="magenta"];407 -> 418[label="",style="dashed", color="magenta", weight=3]; 537 -> 168[label="",style="dashed", color="red", weight=0]; 537[label="abs vuz30 == fromInt (Pos Zero)",fontsize=16,color="magenta"];537 -> 542[label="",style="dashed", color="magenta", weight=3]; 537 -> 543[label="",style="dashed", color="magenta", weight=3]; 536[label="gcd0Gcd'1 vuz66 (abs vuz31) (abs vuz30)",fontsize=16,color="burlywood",shape="triangle"];3515[label="vuz66/False",fontsize=10,color="white",style="solid",shape="box"];536 -> 3515[label="",style="solid", color="burlywood", weight=9]; 3515 -> 544[label="",style="solid", color="burlywood", weight=3]; 3516[label="vuz66/True",fontsize=10,color="white",style="solid",shape="box"];536 -> 3516[label="",style="solid", color="burlywood", weight=9]; 3516 -> 545[label="",style="solid", color="burlywood", weight=3]; 538 -> 1283[label="",style="dashed", color="red", weight=0]; 538[label="primDivNatS0 (Succ vuz29000) (Succ vuz56000) (primGEqNatS vuz29000 vuz56000)",fontsize=16,color="magenta"];538 -> 1284[label="",style="dashed", color="magenta", weight=3]; 538 -> 1285[label="",style="dashed", color="magenta", weight=3]; 538 -> 1286[label="",style="dashed", color="magenta", weight=3]; 538 -> 1287[label="",style="dashed", color="magenta", weight=3]; 539[label="primDivNatS0 (Succ vuz29000) Zero True",fontsize=16,color="black",shape="box"];539 -> 553[label="",style="solid", color="black", weight=3]; 540[label="primDivNatS0 Zero (Succ vuz56000) False",fontsize=16,color="black",shape="box"];540 -> 554[label="",style="solid", color="black", weight=3]; 541[label="primDivNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];541 -> 555[label="",style="solid", color="black", weight=3]; 416[label="Integer vuz360 `quot` gcd0Gcd' (abs (Integer vuz370)) (abs vuz38)",fontsize=16,color="black",shape="box"];416 -> 424[label="",style="solid", color="black", weight=3]; 418 -> 12[label="",style="dashed", color="red", weight=0]; 418[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];417[label="Integer vuz360 `quot` gcd1 (vuz38 == vuz53) (Integer vuz370) vuz38",fontsize=16,color="burlywood",shape="triangle"];3517[label="vuz38/Integer vuz380",fontsize=10,color="white",style="solid",shape="box"];417 -> 3517[label="",style="solid", color="burlywood", weight=9]; 3517 -> 425[label="",style="solid", color="burlywood", weight=3]; 542[label="abs vuz30",fontsize=16,color="black",shape="triangle"];542 -> 556[label="",style="solid", color="black", weight=3]; 543 -> 13[label="",style="dashed", color="red", weight=0]; 543[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];544[label="gcd0Gcd'1 False (abs vuz31) (abs vuz30)",fontsize=16,color="black",shape="box"];544 -> 557[label="",style="solid", color="black", weight=3]; 545[label="gcd0Gcd'1 True (abs vuz31) (abs vuz30)",fontsize=16,color="black",shape="box"];545 -> 558[label="",style="solid", color="black", weight=3]; 1284[label="vuz56000",fontsize=16,color="green",shape="box"];1285[label="vuz29000",fontsize=16,color="green",shape="box"];1286[label="vuz56000",fontsize=16,color="green",shape="box"];1287[label="vuz29000",fontsize=16,color="green",shape="box"];1283[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS vuz99 vuz100)",fontsize=16,color="burlywood",shape="triangle"];3518[label="vuz99/Succ vuz990",fontsize=10,color="white",style="solid",shape="box"];1283 -> 3518[label="",style="solid", color="burlywood", weight=9]; 3518 -> 1324[label="",style="solid", color="burlywood", weight=3]; 3519[label="vuz99/Zero",fontsize=10,color="white",style="solid",shape="box"];1283 -> 3519[label="",style="solid", color="burlywood", weight=9]; 3519 -> 1325[label="",style="solid", color="burlywood", weight=3]; 553[label="Succ (primDivNatS (primMinusNatS (Succ vuz29000) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];553 -> 566[label="",style="dashed", color="green", weight=3]; 554[label="Zero",fontsize=16,color="green",shape="box"];555[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];555 -> 567[label="",style="dashed", color="green", weight=3]; 424[label="Integer vuz360 `quot` gcd0Gcd'2 (abs (Integer vuz370)) (abs vuz38)",fontsize=16,color="black",shape="box"];424 -> 491[label="",style="solid", color="black", weight=3]; 425[label="Integer vuz360 `quot` gcd1 (Integer vuz380 == vuz53) (Integer vuz370) (Integer vuz380)",fontsize=16,color="burlywood",shape="box"];3520[label="vuz53/Integer vuz530",fontsize=10,color="white",style="solid",shape="box"];425 -> 3520[label="",style="solid", color="burlywood", weight=9]; 3520 -> 492[label="",style="solid", color="burlywood", weight=3]; 556[label="absReal vuz30",fontsize=16,color="black",shape="box"];556 -> 568[label="",style="solid", color="black", weight=3]; 557 -> 569[label="",style="dashed", color="red", weight=0]; 557[label="gcd0Gcd'0 (abs vuz31) (abs vuz30)",fontsize=16,color="magenta"];557 -> 570[label="",style="dashed", color="magenta", weight=3]; 557 -> 571[label="",style="dashed", color="magenta", weight=3]; 558 -> 542[label="",style="dashed", color="red", weight=0]; 558[label="abs vuz31",fontsize=16,color="magenta"];558 -> 572[label="",style="dashed", color="magenta", weight=3]; 1324[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS (Succ vuz990) vuz100)",fontsize=16,color="burlywood",shape="box"];3521[label="vuz100/Succ vuz1000",fontsize=10,color="white",style="solid",shape="box"];1324 -> 3521[label="",style="solid", color="burlywood", weight=9]; 3521 -> 1364[label="",style="solid", color="burlywood", weight=3]; 3522[label="vuz100/Zero",fontsize=10,color="white",style="solid",shape="box"];1324 -> 3522[label="",style="solid", color="burlywood", weight=9]; 3522 -> 1365[label="",style="solid", color="burlywood", weight=3]; 1325[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS Zero vuz100)",fontsize=16,color="burlywood",shape="box"];3523[label="vuz100/Succ vuz1000",fontsize=10,color="white",style="solid",shape="box"];1325 -> 3523[label="",style="solid", color="burlywood", weight=9]; 3523 -> 1366[label="",style="solid", color="burlywood", weight=3]; 3524[label="vuz100/Zero",fontsize=10,color="white",style="solid",shape="box"];1325 -> 3524[label="",style="solid", color="burlywood", weight=9]; 3524 -> 1367[label="",style="solid", color="burlywood", weight=3]; 566 -> 497[label="",style="dashed", color="red", weight=0]; 566[label="primDivNatS (primMinusNatS (Succ vuz29000) Zero) (Succ Zero)",fontsize=16,color="magenta"];566 -> 577[label="",style="dashed", color="magenta", weight=3]; 566 -> 578[label="",style="dashed", color="magenta", weight=3]; 567 -> 497[label="",style="dashed", color="red", weight=0]; 567[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];567 -> 579[label="",style="dashed", color="magenta", weight=3]; 567 -> 580[label="",style="dashed", color="magenta", weight=3]; 491 -> 502[label="",style="dashed", color="red", weight=0]; 491[label="Integer vuz360 `quot` gcd0Gcd'1 (abs vuz38 == fromInt (Pos Zero)) (abs (Integer vuz370)) (abs vuz38)",fontsize=16,color="magenta"];491 -> 503[label="",style="dashed", color="magenta", weight=3]; 492[label="Integer vuz360 `quot` gcd1 (Integer vuz380 == Integer vuz530) (Integer vuz370) (Integer vuz380)",fontsize=16,color="black",shape="box"];492 -> 523[label="",style="solid", color="black", weight=3]; 568[label="absReal2 vuz30",fontsize=16,color="black",shape="box"];568 -> 581[label="",style="solid", color="black", weight=3]; 570 -> 542[label="",style="dashed", color="red", weight=0]; 570[label="abs vuz30",fontsize=16,color="magenta"];571 -> 542[label="",style="dashed", color="red", weight=0]; 571[label="abs vuz31",fontsize=16,color="magenta"];571 -> 582[label="",style="dashed", color="magenta", weight=3]; 569[label="gcd0Gcd'0 vuz69 vuz68",fontsize=16,color="black",shape="triangle"];569 -> 583[label="",style="solid", color="black", weight=3]; 572[label="vuz31",fontsize=16,color="green",shape="box"];1364[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS (Succ vuz990) (Succ vuz1000))",fontsize=16,color="black",shape="box"];1364 -> 1401[label="",style="solid", color="black", weight=3]; 1365[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS (Succ vuz990) Zero)",fontsize=16,color="black",shape="box"];1365 -> 1402[label="",style="solid", color="black", weight=3]; 1366[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS Zero (Succ vuz1000))",fontsize=16,color="black",shape="box"];1366 -> 1403[label="",style="solid", color="black", weight=3]; 1367[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];1367 -> 1404[label="",style="solid", color="black", weight=3]; 577[label="primMinusNatS (Succ vuz29000) Zero",fontsize=16,color="black",shape="triangle"];577 -> 592[label="",style="solid", color="black", weight=3]; 578[label="Zero",fontsize=16,color="green",shape="box"];579[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="triangle"];579 -> 593[label="",style="solid", color="black", weight=3]; 580[label="Zero",fontsize=16,color="green",shape="box"];503 -> 12[label="",style="dashed", color="red", weight=0]; 503[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];502[label="Integer vuz360 `quot` gcd0Gcd'1 (abs vuz38 == vuz62) (abs (Integer vuz370)) (abs vuz38)",fontsize=16,color="black",shape="triangle"];502 -> 524[label="",style="solid", color="black", weight=3]; 523 -> 530[label="",style="dashed", color="red", weight=0]; 523[label="Integer vuz360 `quot` gcd1 (primEqInt vuz380 vuz530) (Integer vuz370) (Integer vuz380)",fontsize=16,color="magenta"];523 -> 531[label="",style="dashed", color="magenta", weight=3]; 581 -> 594[label="",style="dashed", color="red", weight=0]; 581[label="absReal1 vuz30 (vuz30 >= fromInt (Pos Zero))",fontsize=16,color="magenta"];581 -> 595[label="",style="dashed", color="magenta", weight=3]; 582[label="vuz31",fontsize=16,color="green",shape="box"];583[label="gcd0Gcd' vuz68 (vuz69 `rem` vuz68)",fontsize=16,color="black",shape="box"];583 -> 596[label="",style="solid", color="black", weight=3]; 1401 -> 1283[label="",style="dashed", color="red", weight=0]; 1401[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS vuz990 vuz1000)",fontsize=16,color="magenta"];1401 -> 1407[label="",style="dashed", color="magenta", weight=3]; 1401 -> 1408[label="",style="dashed", color="magenta", weight=3]; 1402[label="primDivNatS0 (Succ vuz97) (Succ vuz98) True",fontsize=16,color="black",shape="triangle"];1402 -> 1409[label="",style="solid", color="black", weight=3]; 1403[label="primDivNatS0 (Succ vuz97) (Succ vuz98) False",fontsize=16,color="black",shape="box"];1403 -> 1410[label="",style="solid", color="black", weight=3]; 1404 -> 1402[label="",style="dashed", color="red", weight=0]; 1404[label="primDivNatS0 (Succ vuz97) (Succ vuz98) True",fontsize=16,color="magenta"];592[label="Succ vuz29000",fontsize=16,color="green",shape="box"];593[label="Zero",fontsize=16,color="green",shape="box"];524[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal vuz38 == vuz62) (abs (Integer vuz370)) (absReal vuz38)",fontsize=16,color="black",shape="box"];524 -> 546[label="",style="solid", color="black", weight=3]; 531 -> 181[label="",style="dashed", color="red", weight=0]; 531[label="primEqInt vuz380 vuz530",fontsize=16,color="magenta"];531 -> 547[label="",style="dashed", color="magenta", weight=3]; 531 -> 548[label="",style="dashed", color="magenta", weight=3]; 530[label="Integer vuz360 `quot` gcd1 vuz65 (Integer vuz370) (Integer vuz380)",fontsize=16,color="burlywood",shape="triangle"];3525[label="vuz65/False",fontsize=10,color="white",style="solid",shape="box"];530 -> 3525[label="",style="solid", color="burlywood", weight=9]; 3525 -> 549[label="",style="solid", color="burlywood", weight=3]; 3526[label="vuz65/True",fontsize=10,color="white",style="solid",shape="box"];530 -> 3526[label="",style="solid", color="burlywood", weight=9]; 3526 -> 550[label="",style="solid", color="burlywood", weight=3]; 595 -> 13[label="",style="dashed", color="red", weight=0]; 595[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];594[label="absReal1 vuz30 (vuz30 >= vuz72)",fontsize=16,color="black",shape="triangle"];594 -> 603[label="",style="solid", color="black", weight=3]; 596[label="gcd0Gcd'2 vuz68 (vuz69 `rem` vuz68)",fontsize=16,color="black",shape="box"];596 -> 607[label="",style="solid", color="black", weight=3]; 1407[label="vuz1000",fontsize=16,color="green",shape="box"];1408[label="vuz990",fontsize=16,color="green",shape="box"];1409[label="Succ (primDivNatS (primMinusNatS (Succ vuz97) (Succ vuz98)) (Succ (Succ vuz98)))",fontsize=16,color="green",shape="box"];1409 -> 1413[label="",style="dashed", color="green", weight=3]; 1410[label="Zero",fontsize=16,color="green",shape="box"];546[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal2 vuz38 == vuz62) (abs (Integer vuz370)) (absReal2 vuz38)",fontsize=16,color="black",shape="box"];546 -> 559[label="",style="solid", color="black", weight=3]; 547[label="vuz380",fontsize=16,color="green",shape="box"];548[label="vuz530",fontsize=16,color="green",shape="box"];549[label="Integer vuz360 `quot` gcd1 False (Integer vuz370) (Integer vuz380)",fontsize=16,color="black",shape="box"];549 -> 560[label="",style="solid", color="black", weight=3]; 550[label="Integer vuz360 `quot` gcd1 True (Integer vuz370) (Integer vuz380)",fontsize=16,color="black",shape="box"];550 -> 561[label="",style="solid", color="black", weight=3]; 603[label="absReal1 vuz30 (compare vuz30 vuz72 /= LT)",fontsize=16,color="black",shape="box"];603 -> 616[label="",style="solid", color="black", weight=3]; 607 -> 618[label="",style="dashed", color="red", weight=0]; 607[label="gcd0Gcd'1 (vuz69 `rem` vuz68 == fromInt (Pos Zero)) vuz68 (vuz69 `rem` vuz68)",fontsize=16,color="magenta"];607 -> 619[label="",style="dashed", color="magenta", weight=3]; 1413 -> 497[label="",style="dashed", color="red", weight=0]; 1413[label="primDivNatS (primMinusNatS (Succ vuz97) (Succ vuz98)) (Succ (Succ vuz98))",fontsize=16,color="magenta"];1413 -> 1447[label="",style="dashed", color="magenta", weight=3]; 1413 -> 1448[label="",style="dashed", color="magenta", weight=3]; 559 -> 584[label="",style="dashed", color="red", weight=0]; 559[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 vuz38 (vuz38 >= fromInt (Pos Zero)) == vuz62) (abs (Integer vuz370)) (absReal1 vuz38 (vuz38 >= fromInt (Pos Zero)))",fontsize=16,color="magenta"];559 -> 585[label="",style="dashed", color="magenta", weight=3]; 559 -> 586[label="",style="dashed", color="magenta", weight=3]; 560 -> 406[label="",style="dashed", color="red", weight=0]; 560[label="Integer vuz360 `quot` gcd0 (Integer vuz370) (Integer vuz380)",fontsize=16,color="magenta"];560 -> 604[label="",style="dashed", color="magenta", weight=3]; 561[label="Integer vuz360 `quot` error []",fontsize=16,color="black",shape="box"];561 -> 605[label="",style="solid", color="black", weight=3]; 616[label="absReal1 vuz30 (not (compare vuz30 vuz72 == LT))",fontsize=16,color="black",shape="box"];616 -> 627[label="",style="solid", color="black", weight=3]; 619 -> 168[label="",style="dashed", color="red", weight=0]; 619[label="vuz69 `rem` vuz68 == fromInt (Pos Zero)",fontsize=16,color="magenta"];619 -> 628[label="",style="dashed", color="magenta", weight=3]; 619 -> 629[label="",style="dashed", color="magenta", weight=3]; 618[label="gcd0Gcd'1 vuz73 vuz68 (vuz69 `rem` vuz68)",fontsize=16,color="burlywood",shape="triangle"];3527[label="vuz73/False",fontsize=10,color="white",style="solid",shape="box"];618 -> 3527[label="",style="solid", color="burlywood", weight=9]; 3527 -> 630[label="",style="solid", color="burlywood", weight=3]; 3528[label="vuz73/True",fontsize=10,color="white",style="solid",shape="box"];618 -> 3528[label="",style="solid", color="burlywood", weight=9]; 3528 -> 631[label="",style="solid", color="burlywood", weight=3]; 1447 -> 1022[label="",style="dashed", color="red", weight=0]; 1447[label="primMinusNatS (Succ vuz97) (Succ vuz98)",fontsize=16,color="magenta"];1447 -> 1489[label="",style="dashed", color="magenta", weight=3]; 1447 -> 1490[label="",style="dashed", color="magenta", weight=3]; 1448[label="Succ vuz98",fontsize=16,color="green",shape="box"];585 -> 12[label="",style="dashed", color="red", weight=0]; 585[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];586 -> 12[label="",style="dashed", color="red", weight=0]; 586[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];584[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 vuz38 (vuz38 >= vuz71) == vuz62) (abs (Integer vuz370)) (absReal1 vuz38 (vuz38 >= vuz70))",fontsize=16,color="black",shape="triangle"];584 -> 606[label="",style="solid", color="black", weight=3]; 604[label="Integer vuz380",fontsize=16,color="green",shape="box"];605[label="error []",fontsize=16,color="red",shape="box"];627[label="absReal1 vuz30 (not (primCmpInt vuz30 vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3529[label="vuz30/Pos vuz300",fontsize=10,color="white",style="solid",shape="box"];627 -> 3529[label="",style="solid", color="burlywood", weight=9]; 3529 -> 640[label="",style="solid", color="burlywood", weight=3]; 3530[label="vuz30/Neg vuz300",fontsize=10,color="white",style="solid",shape="box"];627 -> 3530[label="",style="solid", color="burlywood", weight=9]; 3530 -> 641[label="",style="solid", color="burlywood", weight=3]; 628[label="vuz69 `rem` vuz68",fontsize=16,color="black",shape="triangle"];628 -> 642[label="",style="solid", color="black", weight=3]; 629 -> 13[label="",style="dashed", color="red", weight=0]; 629[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];630[label="gcd0Gcd'1 False vuz68 (vuz69 `rem` vuz68)",fontsize=16,color="black",shape="box"];630 -> 643[label="",style="solid", color="black", weight=3]; 631[label="gcd0Gcd'1 True vuz68 (vuz69 `rem` vuz68)",fontsize=16,color="black",shape="box"];631 -> 644[label="",style="solid", color="black", weight=3]; 1489[label="Succ vuz97",fontsize=16,color="green",shape="box"];1490[label="Succ vuz98",fontsize=16,color="green",shape="box"];1022[label="primMinusNatS vuz88 vuz89",fontsize=16,color="burlywood",shape="triangle"];3531[label="vuz88/Succ vuz880",fontsize=10,color="white",style="solid",shape="box"];1022 -> 3531[label="",style="solid", color="burlywood", weight=9]; 3531 -> 1050[label="",style="solid", color="burlywood", weight=3]; 3532[label="vuz88/Zero",fontsize=10,color="white",style="solid",shape="box"];1022 -> 3532[label="",style="solid", color="burlywood", weight=9]; 3532 -> 1051[label="",style="solid", color="burlywood", weight=3]; 606[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 vuz38 (compare vuz38 vuz71 /= LT) == vuz62) (abs (Integer vuz370)) (absReal1 vuz38 (compare vuz38 vuz71 /= LT))",fontsize=16,color="black",shape="box"];606 -> 617[label="",style="solid", color="black", weight=3]; 640[label="absReal1 (Pos vuz300) (not (primCmpInt (Pos vuz300) vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3533[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];640 -> 3533[label="",style="solid", color="burlywood", weight=9]; 3533 -> 654[label="",style="solid", color="burlywood", weight=3]; 3534[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];640 -> 3534[label="",style="solid", color="burlywood", weight=9]; 3534 -> 655[label="",style="solid", color="burlywood", weight=3]; 641[label="absReal1 (Neg vuz300) (not (primCmpInt (Neg vuz300) vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3535[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];641 -> 3535[label="",style="solid", color="burlywood", weight=9]; 3535 -> 656[label="",style="solid", color="burlywood", weight=3]; 3536[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];641 -> 3536[label="",style="solid", color="burlywood", weight=9]; 3536 -> 657[label="",style="solid", color="burlywood", weight=3]; 642[label="primRemInt vuz69 vuz68",fontsize=16,color="burlywood",shape="triangle"];3537[label="vuz69/Pos vuz690",fontsize=10,color="white",style="solid",shape="box"];642 -> 3537[label="",style="solid", color="burlywood", weight=9]; 3537 -> 658[label="",style="solid", color="burlywood", weight=3]; 3538[label="vuz69/Neg vuz690",fontsize=10,color="white",style="solid",shape="box"];642 -> 3538[label="",style="solid", color="burlywood", weight=9]; 3538 -> 659[label="",style="solid", color="burlywood", weight=3]; 643 -> 569[label="",style="dashed", color="red", weight=0]; 643[label="gcd0Gcd'0 vuz68 (vuz69 `rem` vuz68)",fontsize=16,color="magenta"];643 -> 660[label="",style="dashed", color="magenta", weight=3]; 643 -> 661[label="",style="dashed", color="magenta", weight=3]; 644[label="vuz68",fontsize=16,color="green",shape="box"];1050[label="primMinusNatS (Succ vuz880) vuz89",fontsize=16,color="burlywood",shape="box"];3539[label="vuz89/Succ vuz890",fontsize=10,color="white",style="solid",shape="box"];1050 -> 3539[label="",style="solid", color="burlywood", weight=9]; 3539 -> 1060[label="",style="solid", color="burlywood", weight=3]; 3540[label="vuz89/Zero",fontsize=10,color="white",style="solid",shape="box"];1050 -> 3540[label="",style="solid", color="burlywood", weight=9]; 3540 -> 1061[label="",style="solid", color="burlywood", weight=3]; 1051[label="primMinusNatS Zero vuz89",fontsize=16,color="burlywood",shape="box"];3541[label="vuz89/Succ vuz890",fontsize=10,color="white",style="solid",shape="box"];1051 -> 3541[label="",style="solid", color="burlywood", weight=9]; 3541 -> 1062[label="",style="solid", color="burlywood", weight=3]; 3542[label="vuz89/Zero",fontsize=10,color="white",style="solid",shape="box"];1051 -> 3542[label="",style="solid", color="burlywood", weight=9]; 3542 -> 1063[label="",style="solid", color="burlywood", weight=3]; 617[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 vuz38 (not (compare vuz38 vuz71 == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 vuz38 (not (compare vuz38 vuz71 == LT)))",fontsize=16,color="burlywood",shape="box"];3543[label="vuz38/Integer vuz380",fontsize=10,color="white",style="solid",shape="box"];617 -> 3543[label="",style="solid", color="burlywood", weight=9]; 3543 -> 632[label="",style="solid", color="burlywood", weight=3]; 654[label="absReal1 (Pos (Succ vuz3000)) (not (primCmpInt (Pos (Succ vuz3000)) vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3544[label="vuz72/Pos vuz720",fontsize=10,color="white",style="solid",shape="box"];654 -> 3544[label="",style="solid", color="burlywood", weight=9]; 3544 -> 670[label="",style="solid", color="burlywood", weight=3]; 3545[label="vuz72/Neg vuz720",fontsize=10,color="white",style="solid",shape="box"];654 -> 3545[label="",style="solid", color="burlywood", weight=9]; 3545 -> 671[label="",style="solid", color="burlywood", weight=3]; 655[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3546[label="vuz72/Pos vuz720",fontsize=10,color="white",style="solid",shape="box"];655 -> 3546[label="",style="solid", color="burlywood", weight=9]; 3546 -> 672[label="",style="solid", color="burlywood", weight=3]; 3547[label="vuz72/Neg vuz720",fontsize=10,color="white",style="solid",shape="box"];655 -> 3547[label="",style="solid", color="burlywood", weight=9]; 3547 -> 673[label="",style="solid", color="burlywood", weight=3]; 656[label="absReal1 (Neg (Succ vuz3000)) (not (primCmpInt (Neg (Succ vuz3000)) vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3548[label="vuz72/Pos vuz720",fontsize=10,color="white",style="solid",shape="box"];656 -> 3548[label="",style="solid", color="burlywood", weight=9]; 3548 -> 674[label="",style="solid", color="burlywood", weight=3]; 3549[label="vuz72/Neg vuz720",fontsize=10,color="white",style="solid",shape="box"];656 -> 3549[label="",style="solid", color="burlywood", weight=9]; 3549 -> 675[label="",style="solid", color="burlywood", weight=3]; 657[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3550[label="vuz72/Pos vuz720",fontsize=10,color="white",style="solid",shape="box"];657 -> 3550[label="",style="solid", color="burlywood", weight=9]; 3550 -> 676[label="",style="solid", color="burlywood", weight=3]; 3551[label="vuz72/Neg vuz720",fontsize=10,color="white",style="solid",shape="box"];657 -> 3551[label="",style="solid", color="burlywood", weight=9]; 3551 -> 677[label="",style="solid", color="burlywood", weight=3]; 658[label="primRemInt (Pos vuz690) vuz68",fontsize=16,color="burlywood",shape="box"];3552[label="vuz68/Pos vuz680",fontsize=10,color="white",style="solid",shape="box"];658 -> 3552[label="",style="solid", color="burlywood", weight=9]; 3552 -> 678[label="",style="solid", color="burlywood", weight=3]; 3553[label="vuz68/Neg vuz680",fontsize=10,color="white",style="solid",shape="box"];658 -> 3553[label="",style="solid", color="burlywood", weight=9]; 3553 -> 679[label="",style="solid", color="burlywood", weight=3]; 659[label="primRemInt (Neg vuz690) vuz68",fontsize=16,color="burlywood",shape="box"];3554[label="vuz68/Pos vuz680",fontsize=10,color="white",style="solid",shape="box"];659 -> 3554[label="",style="solid", color="burlywood", weight=9]; 3554 -> 680[label="",style="solid", color="burlywood", weight=3]; 3555[label="vuz68/Neg vuz680",fontsize=10,color="white",style="solid",shape="box"];659 -> 3555[label="",style="solid", color="burlywood", weight=9]; 3555 -> 681[label="",style="solid", color="burlywood", weight=3]; 660 -> 628[label="",style="dashed", color="red", weight=0]; 660[label="vuz69 `rem` vuz68",fontsize=16,color="magenta"];661[label="vuz68",fontsize=16,color="green",shape="box"];1060[label="primMinusNatS (Succ vuz880) (Succ vuz890)",fontsize=16,color="black",shape="box"];1060 -> 1111[label="",style="solid", color="black", weight=3]; 1061[label="primMinusNatS (Succ vuz880) Zero",fontsize=16,color="black",shape="box"];1061 -> 1112[label="",style="solid", color="black", weight=3]; 1062[label="primMinusNatS Zero (Succ vuz890)",fontsize=16,color="black",shape="box"];1062 -> 1113[label="",style="solid", color="black", weight=3]; 1063[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];1063 -> 1114[label="",style="solid", color="black", weight=3]; 632[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer vuz380) (not (compare (Integer vuz380) vuz71 == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer vuz380) (not (compare (Integer vuz380) vuz71 == LT)))",fontsize=16,color="burlywood",shape="box"];3556[label="vuz71/Integer vuz710",fontsize=10,color="white",style="solid",shape="box"];632 -> 3556[label="",style="solid", color="burlywood", weight=9]; 3556 -> 645[label="",style="solid", color="burlywood", weight=3]; 670[label="absReal1 (Pos (Succ vuz3000)) (not (primCmpInt (Pos (Succ vuz3000)) (Pos vuz720) == LT))",fontsize=16,color="black",shape="box"];670 -> 691[label="",style="solid", color="black", weight=3]; 671[label="absReal1 (Pos (Succ vuz3000)) (not (primCmpInt (Pos (Succ vuz3000)) (Neg vuz720) == LT))",fontsize=16,color="black",shape="box"];671 -> 692[label="",style="solid", color="black", weight=3]; 672[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Pos vuz720) == LT))",fontsize=16,color="burlywood",shape="box"];3557[label="vuz720/Succ vuz7200",fontsize=10,color="white",style="solid",shape="box"];672 -> 3557[label="",style="solid", color="burlywood", weight=9]; 3557 -> 693[label="",style="solid", color="burlywood", weight=3]; 3558[label="vuz720/Zero",fontsize=10,color="white",style="solid",shape="box"];672 -> 3558[label="",style="solid", color="burlywood", weight=9]; 3558 -> 694[label="",style="solid", color="burlywood", weight=3]; 673[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Neg vuz720) == LT))",fontsize=16,color="burlywood",shape="box"];3559[label="vuz720/Succ vuz7200",fontsize=10,color="white",style="solid",shape="box"];673 -> 3559[label="",style="solid", color="burlywood", weight=9]; 3559 -> 695[label="",style="solid", color="burlywood", weight=3]; 3560[label="vuz720/Zero",fontsize=10,color="white",style="solid",shape="box"];673 -> 3560[label="",style="solid", color="burlywood", weight=9]; 3560 -> 696[label="",style="solid", color="burlywood", weight=3]; 674[label="absReal1 (Neg (Succ vuz3000)) (not (primCmpInt (Neg (Succ vuz3000)) (Pos vuz720) == LT))",fontsize=16,color="black",shape="box"];674 -> 697[label="",style="solid", color="black", weight=3]; 675[label="absReal1 (Neg (Succ vuz3000)) (not (primCmpInt (Neg (Succ vuz3000)) (Neg vuz720) == LT))",fontsize=16,color="black",shape="box"];675 -> 698[label="",style="solid", color="black", weight=3]; 676[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Pos vuz720) == LT))",fontsize=16,color="burlywood",shape="box"];3561[label="vuz720/Succ vuz7200",fontsize=10,color="white",style="solid",shape="box"];676 -> 3561[label="",style="solid", color="burlywood", weight=9]; 3561 -> 699[label="",style="solid", color="burlywood", weight=3]; 3562[label="vuz720/Zero",fontsize=10,color="white",style="solid",shape="box"];676 -> 3562[label="",style="solid", color="burlywood", weight=9]; 3562 -> 700[label="",style="solid", color="burlywood", weight=3]; 677[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Neg vuz720) == LT))",fontsize=16,color="burlywood",shape="box"];3563[label="vuz720/Succ vuz7200",fontsize=10,color="white",style="solid",shape="box"];677 -> 3563[label="",style="solid", color="burlywood", weight=9]; 3563 -> 701[label="",style="solid", color="burlywood", weight=3]; 3564[label="vuz720/Zero",fontsize=10,color="white",style="solid",shape="box"];677 -> 3564[label="",style="solid", color="burlywood", weight=9]; 3564 -> 702[label="",style="solid", color="burlywood", weight=3]; 678[label="primRemInt (Pos vuz690) (Pos vuz680)",fontsize=16,color="burlywood",shape="box"];3565[label="vuz680/Succ vuz6800",fontsize=10,color="white",style="solid",shape="box"];678 -> 3565[label="",style="solid", color="burlywood", weight=9]; 3565 -> 703[label="",style="solid", color="burlywood", weight=3]; 3566[label="vuz680/Zero",fontsize=10,color="white",style="solid",shape="box"];678 -> 3566[label="",style="solid", color="burlywood", weight=9]; 3566 -> 704[label="",style="solid", color="burlywood", weight=3]; 679[label="primRemInt (Pos vuz690) (Neg vuz680)",fontsize=16,color="burlywood",shape="box"];3567[label="vuz680/Succ vuz6800",fontsize=10,color="white",style="solid",shape="box"];679 -> 3567[label="",style="solid", color="burlywood", weight=9]; 3567 -> 705[label="",style="solid", color="burlywood", weight=3]; 3568[label="vuz680/Zero",fontsize=10,color="white",style="solid",shape="box"];679 -> 3568[label="",style="solid", color="burlywood", weight=9]; 3568 -> 706[label="",style="solid", color="burlywood", weight=3]; 680[label="primRemInt (Neg vuz690) (Pos vuz680)",fontsize=16,color="burlywood",shape="box"];3569[label="vuz680/Succ vuz6800",fontsize=10,color="white",style="solid",shape="box"];680 -> 3569[label="",style="solid", color="burlywood", weight=9]; 3569 -> 707[label="",style="solid", color="burlywood", weight=3]; 3570[label="vuz680/Zero",fontsize=10,color="white",style="solid",shape="box"];680 -> 3570[label="",style="solid", color="burlywood", weight=9]; 3570 -> 708[label="",style="solid", color="burlywood", weight=3]; 681[label="primRemInt (Neg vuz690) (Neg vuz680)",fontsize=16,color="burlywood",shape="box"];3571[label="vuz680/Succ vuz6800",fontsize=10,color="white",style="solid",shape="box"];681 -> 3571[label="",style="solid", color="burlywood", weight=9]; 3571 -> 709[label="",style="solid", color="burlywood", weight=3]; 3572[label="vuz680/Zero",fontsize=10,color="white",style="solid",shape="box"];681 -> 3572[label="",style="solid", color="burlywood", weight=9]; 3572 -> 710[label="",style="solid", color="burlywood", weight=3]; 1111 -> 1022[label="",style="dashed", color="red", weight=0]; 1111[label="primMinusNatS vuz880 vuz890",fontsize=16,color="magenta"];1111 -> 1165[label="",style="dashed", color="magenta", weight=3]; 1111 -> 1166[label="",style="dashed", color="magenta", weight=3]; 1112[label="Succ vuz880",fontsize=16,color="green",shape="box"];1113[label="Zero",fontsize=16,color="green",shape="box"];1114[label="Zero",fontsize=16,color="green",shape="box"];645[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer vuz380) (not (compare (Integer vuz380) (Integer vuz710) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer vuz380) (not (compare (Integer vuz380) (Integer vuz710) == LT)))",fontsize=16,color="black",shape="box"];645 -> 662[label="",style="solid", color="black", weight=3]; 691 -> 1467[label="",style="dashed", color="red", weight=0]; 691[label="absReal1 (Pos (Succ vuz3000)) (not (primCmpNat (Succ vuz3000) vuz720 == LT))",fontsize=16,color="magenta"];691 -> 1468[label="",style="dashed", color="magenta", weight=3]; 691 -> 1469[label="",style="dashed", color="magenta", weight=3]; 691 -> 1470[label="",style="dashed", color="magenta", weight=3]; 692[label="absReal1 (Pos (Succ vuz3000)) (not (GT == LT))",fontsize=16,color="black",shape="triangle"];692 -> 725[label="",style="solid", color="black", weight=3]; 693[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Pos (Succ vuz7200)) == LT))",fontsize=16,color="black",shape="box"];693 -> 726[label="",style="solid", color="black", weight=3]; 694[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];694 -> 727[label="",style="solid", color="black", weight=3]; 695[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Neg (Succ vuz7200)) == LT))",fontsize=16,color="black",shape="box"];695 -> 728[label="",style="solid", color="black", weight=3]; 696[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))",fontsize=16,color="black",shape="box"];696 -> 729[label="",style="solid", color="black", weight=3]; 697[label="absReal1 (Neg (Succ vuz3000)) (not (LT == LT))",fontsize=16,color="black",shape="triangle"];697 -> 730[label="",style="solid", color="black", weight=3]; 698 -> 1882[label="",style="dashed", color="red", weight=0]; 698[label="absReal1 (Neg (Succ vuz3000)) (not (primCmpNat vuz720 (Succ vuz3000) == LT))",fontsize=16,color="magenta"];698 -> 1883[label="",style="dashed", color="magenta", weight=3]; 698 -> 1884[label="",style="dashed", color="magenta", weight=3]; 698 -> 1885[label="",style="dashed", color="magenta", weight=3]; 699[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Pos (Succ vuz7200)) == LT))",fontsize=16,color="black",shape="box"];699 -> 733[label="",style="solid", color="black", weight=3]; 700[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];700 -> 734[label="",style="solid", color="black", weight=3]; 701[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Neg (Succ vuz7200)) == LT))",fontsize=16,color="black",shape="box"];701 -> 735[label="",style="solid", color="black", weight=3]; 702[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))",fontsize=16,color="black",shape="box"];702 -> 736[label="",style="solid", color="black", weight=3]; 703[label="primRemInt (Pos vuz690) (Pos (Succ vuz6800))",fontsize=16,color="black",shape="box"];703 -> 737[label="",style="solid", color="black", weight=3]; 704[label="primRemInt (Pos vuz690) (Pos Zero)",fontsize=16,color="black",shape="box"];704 -> 738[label="",style="solid", color="black", weight=3]; 705[label="primRemInt (Pos vuz690) (Neg (Succ vuz6800))",fontsize=16,color="black",shape="box"];705 -> 739[label="",style="solid", color="black", weight=3]; 706[label="primRemInt (Pos vuz690) (Neg Zero)",fontsize=16,color="black",shape="box"];706 -> 740[label="",style="solid", color="black", weight=3]; 707[label="primRemInt (Neg vuz690) (Pos (Succ vuz6800))",fontsize=16,color="black",shape="box"];707 -> 741[label="",style="solid", color="black", weight=3]; 708[label="primRemInt (Neg vuz690) (Pos Zero)",fontsize=16,color="black",shape="box"];708 -> 742[label="",style="solid", color="black", weight=3]; 709[label="primRemInt (Neg vuz690) (Neg (Succ vuz6800))",fontsize=16,color="black",shape="box"];709 -> 743[label="",style="solid", color="black", weight=3]; 710[label="primRemInt (Neg vuz690) (Neg Zero)",fontsize=16,color="black",shape="box"];710 -> 744[label="",style="solid", color="black", weight=3]; 1165[label="vuz880",fontsize=16,color="green",shape="box"];1166[label="vuz890",fontsize=16,color="green",shape="box"];662[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer vuz380) (not (primCmpInt vuz380 vuz710 == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer vuz380) (not (primCmpInt vuz380 vuz710 == LT)))",fontsize=16,color="burlywood",shape="box"];3573[label="vuz380/Pos vuz3800",fontsize=10,color="white",style="solid",shape="box"];662 -> 3573[label="",style="solid", color="burlywood", weight=9]; 3573 -> 682[label="",style="solid", color="burlywood", weight=3]; 3574[label="vuz380/Neg vuz3800",fontsize=10,color="white",style="solid",shape="box"];662 -> 3574[label="",style="solid", color="burlywood", weight=9]; 3574 -> 683[label="",style="solid", color="burlywood", weight=3]; 1468[label="Succ vuz3000",fontsize=16,color="green",shape="box"];1469[label="vuz3000",fontsize=16,color="green",shape="box"];1470[label="vuz720",fontsize=16,color="green",shape="box"];1467[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat vuz105 vuz106 == LT))",fontsize=16,color="burlywood",shape="triangle"];3575[label="vuz105/Succ vuz1050",fontsize=10,color="white",style="solid",shape="box"];1467 -> 3575[label="",style="solid", color="burlywood", weight=9]; 3575 -> 1491[label="",style="solid", color="burlywood", weight=3]; 3576[label="vuz105/Zero",fontsize=10,color="white",style="solid",shape="box"];1467 -> 3576[label="",style="solid", color="burlywood", weight=9]; 3576 -> 1492[label="",style="solid", color="burlywood", weight=3]; 725[label="absReal1 (Pos (Succ vuz3000)) (not False)",fontsize=16,color="black",shape="triangle"];725 -> 762[label="",style="solid", color="black", weight=3]; 726[label="absReal1 (Pos Zero) (not (primCmpNat Zero (Succ vuz7200) == LT))",fontsize=16,color="black",shape="box"];726 -> 763[label="",style="solid", color="black", weight=3]; 727[label="absReal1 (Pos Zero) (not (EQ == LT))",fontsize=16,color="black",shape="triangle"];727 -> 764[label="",style="solid", color="black", weight=3]; 728[label="absReal1 (Pos Zero) (not (GT == LT))",fontsize=16,color="black",shape="box"];728 -> 765[label="",style="solid", color="black", weight=3]; 729 -> 727[label="",style="dashed", color="red", weight=0]; 729[label="absReal1 (Pos Zero) (not (EQ == LT))",fontsize=16,color="magenta"];730[label="absReal1 (Neg (Succ vuz3000)) (not True)",fontsize=16,color="black",shape="box"];730 -> 766[label="",style="solid", color="black", weight=3]; 1883[label="vuz3000",fontsize=16,color="green",shape="box"];1884[label="vuz720",fontsize=16,color="green",shape="box"];1885[label="Succ vuz3000",fontsize=16,color="green",shape="box"];1882[label="absReal1 (Neg (Succ vuz130)) (not (primCmpNat vuz131 vuz132 == LT))",fontsize=16,color="burlywood",shape="triangle"];3577[label="vuz131/Succ vuz1310",fontsize=10,color="white",style="solid",shape="box"];1882 -> 3577[label="",style="solid", color="burlywood", weight=9]; 3577 -> 1913[label="",style="solid", color="burlywood", weight=3]; 3578[label="vuz131/Zero",fontsize=10,color="white",style="solid",shape="box"];1882 -> 3578[label="",style="solid", color="burlywood", weight=9]; 3578 -> 1914[label="",style="solid", color="burlywood", weight=3]; 733[label="absReal1 (Neg Zero) (not (LT == LT))",fontsize=16,color="black",shape="box"];733 -> 769[label="",style="solid", color="black", weight=3]; 734[label="absReal1 (Neg Zero) (not (EQ == LT))",fontsize=16,color="black",shape="triangle"];734 -> 770[label="",style="solid", color="black", weight=3]; 735[label="absReal1 (Neg Zero) (not (primCmpNat (Succ vuz7200) Zero == LT))",fontsize=16,color="black",shape="box"];735 -> 771[label="",style="solid", color="black", weight=3]; 736 -> 734[label="",style="dashed", color="red", weight=0]; 736[label="absReal1 (Neg Zero) (not (EQ == LT))",fontsize=16,color="magenta"];737[label="Pos (primModNatS vuz690 (Succ vuz6800))",fontsize=16,color="green",shape="box"];737 -> 772[label="",style="dashed", color="green", weight=3]; 738 -> 484[label="",style="dashed", color="red", weight=0]; 738[label="error []",fontsize=16,color="magenta"];739[label="Pos (primModNatS vuz690 (Succ vuz6800))",fontsize=16,color="green",shape="box"];739 -> 773[label="",style="dashed", color="green", weight=3]; 740 -> 484[label="",style="dashed", color="red", weight=0]; 740[label="error []",fontsize=16,color="magenta"];741[label="Neg (primModNatS vuz690 (Succ vuz6800))",fontsize=16,color="green",shape="box"];741 -> 774[label="",style="dashed", color="green", weight=3]; 742 -> 484[label="",style="dashed", color="red", weight=0]; 742[label="error []",fontsize=16,color="magenta"];743[label="Neg (primModNatS vuz690 (Succ vuz6800))",fontsize=16,color="green",shape="box"];743 -> 775[label="",style="dashed", color="green", weight=3]; 744 -> 484[label="",style="dashed", color="red", weight=0]; 744[label="error []",fontsize=16,color="magenta"];682[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos vuz3800)) (not (primCmpInt (Pos vuz3800) vuz710 == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos vuz3800)) (not (primCmpInt (Pos vuz3800) vuz710 == LT)))",fontsize=16,color="burlywood",shape="box"];3579[label="vuz3800/Succ vuz38000",fontsize=10,color="white",style="solid",shape="box"];682 -> 3579[label="",style="solid", color="burlywood", weight=9]; 3579 -> 711[label="",style="solid", color="burlywood", weight=3]; 3580[label="vuz3800/Zero",fontsize=10,color="white",style="solid",shape="box"];682 -> 3580[label="",style="solid", color="burlywood", weight=9]; 3580 -> 712[label="",style="solid", color="burlywood", weight=3]; 683[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg vuz3800)) (not (primCmpInt (Neg vuz3800) vuz710 == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg vuz3800)) (not (primCmpInt (Neg vuz3800) vuz710 == LT)))",fontsize=16,color="burlywood",shape="box"];3581[label="vuz3800/Succ vuz38000",fontsize=10,color="white",style="solid",shape="box"];683 -> 3581[label="",style="solid", color="burlywood", weight=9]; 3581 -> 713[label="",style="solid", color="burlywood", weight=3]; 3582[label="vuz3800/Zero",fontsize=10,color="white",style="solid",shape="box"];683 -> 3582[label="",style="solid", color="burlywood", weight=9]; 3582 -> 714[label="",style="solid", color="burlywood", weight=3]; 1491[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat (Succ vuz1050) vuz106 == LT))",fontsize=16,color="burlywood",shape="box"];3583[label="vuz106/Succ vuz1060",fontsize=10,color="white",style="solid",shape="box"];1491 -> 3583[label="",style="solid", color="burlywood", weight=9]; 3583 -> 1503[label="",style="solid", color="burlywood", weight=3]; 3584[label="vuz106/Zero",fontsize=10,color="white",style="solid",shape="box"];1491 -> 3584[label="",style="solid", color="burlywood", weight=9]; 3584 -> 1504[label="",style="solid", color="burlywood", weight=3]; 1492[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat Zero vuz106 == LT))",fontsize=16,color="burlywood",shape="box"];3585[label="vuz106/Succ vuz1060",fontsize=10,color="white",style="solid",shape="box"];1492 -> 3585[label="",style="solid", color="burlywood", weight=9]; 3585 -> 1505[label="",style="solid", color="burlywood", weight=3]; 3586[label="vuz106/Zero",fontsize=10,color="white",style="solid",shape="box"];1492 -> 3586[label="",style="solid", color="burlywood", weight=9]; 3586 -> 1506[label="",style="solid", color="burlywood", weight=3]; 762[label="absReal1 (Pos (Succ vuz3000)) True",fontsize=16,color="black",shape="box"];762 -> 797[label="",style="solid", color="black", weight=3]; 763[label="absReal1 (Pos Zero) (not (LT == LT))",fontsize=16,color="black",shape="box"];763 -> 798[label="",style="solid", color="black", weight=3]; 764[label="absReal1 (Pos Zero) (not False)",fontsize=16,color="black",shape="triangle"];764 -> 799[label="",style="solid", color="black", weight=3]; 765 -> 764[label="",style="dashed", color="red", weight=0]; 765[label="absReal1 (Pos Zero) (not False)",fontsize=16,color="magenta"];766[label="absReal1 (Neg (Succ vuz3000)) False",fontsize=16,color="black",shape="box"];766 -> 800[label="",style="solid", color="black", weight=3]; 1913[label="absReal1 (Neg (Succ vuz130)) (not (primCmpNat (Succ vuz1310) vuz132 == LT))",fontsize=16,color="burlywood",shape="box"];3587[label="vuz132/Succ vuz1320",fontsize=10,color="white",style="solid",shape="box"];1913 -> 3587[label="",style="solid", color="burlywood", weight=9]; 3587 -> 1935[label="",style="solid", color="burlywood", weight=3]; 3588[label="vuz132/Zero",fontsize=10,color="white",style="solid",shape="box"];1913 -> 3588[label="",style="solid", color="burlywood", weight=9]; 3588 -> 1936[label="",style="solid", color="burlywood", weight=3]; 1914[label="absReal1 (Neg (Succ vuz130)) (not (primCmpNat Zero vuz132 == LT))",fontsize=16,color="burlywood",shape="box"];3589[label="vuz132/Succ vuz1320",fontsize=10,color="white",style="solid",shape="box"];1914 -> 3589[label="",style="solid", color="burlywood", weight=9]; 3589 -> 1937[label="",style="solid", color="burlywood", weight=3]; 3590[label="vuz132/Zero",fontsize=10,color="white",style="solid",shape="box"];1914 -> 3590[label="",style="solid", color="burlywood", weight=9]; 3590 -> 1938[label="",style="solid", color="burlywood", weight=3]; 769[label="absReal1 (Neg Zero) (not True)",fontsize=16,color="black",shape="box"];769 -> 803[label="",style="solid", color="black", weight=3]; 770[label="absReal1 (Neg Zero) (not False)",fontsize=16,color="black",shape="triangle"];770 -> 804[label="",style="solid", color="black", weight=3]; 771[label="absReal1 (Neg Zero) (not (GT == LT))",fontsize=16,color="black",shape="box"];771 -> 805[label="",style="solid", color="black", weight=3]; 772[label="primModNatS vuz690 (Succ vuz6800)",fontsize=16,color="burlywood",shape="triangle"];3591[label="vuz690/Succ vuz6900",fontsize=10,color="white",style="solid",shape="box"];772 -> 3591[label="",style="solid", color="burlywood", weight=9]; 3591 -> 806[label="",style="solid", color="burlywood", weight=3]; 3592[label="vuz690/Zero",fontsize=10,color="white",style="solid",shape="box"];772 -> 3592[label="",style="solid", color="burlywood", weight=9]; 3592 -> 807[label="",style="solid", color="burlywood", weight=3]; 773 -> 772[label="",style="dashed", color="red", weight=0]; 773[label="primModNatS vuz690 (Succ vuz6800)",fontsize=16,color="magenta"];773 -> 808[label="",style="dashed", color="magenta", weight=3]; 774 -> 772[label="",style="dashed", color="red", weight=0]; 774[label="primModNatS vuz690 (Succ vuz6800)",fontsize=16,color="magenta"];774 -> 809[label="",style="dashed", color="magenta", weight=3]; 775 -> 772[label="",style="dashed", color="red", weight=0]; 775[label="primModNatS vuz690 (Succ vuz6800)",fontsize=16,color="magenta"];775 -> 810[label="",style="dashed", color="magenta", weight=3]; 775 -> 811[label="",style="dashed", color="magenta", weight=3]; 711[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpInt (Pos (Succ vuz38000)) vuz710 == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpInt (Pos (Succ vuz38000)) vuz710 == LT)))",fontsize=16,color="burlywood",shape="box"];3593[label="vuz710/Pos vuz7100",fontsize=10,color="white",style="solid",shape="box"];711 -> 3593[label="",style="solid", color="burlywood", weight=9]; 3593 -> 745[label="",style="solid", color="burlywood", weight=3]; 3594[label="vuz710/Neg vuz7100",fontsize=10,color="white",style="solid",shape="box"];711 -> 3594[label="",style="solid", color="burlywood", weight=9]; 3594 -> 746[label="",style="solid", color="burlywood", weight=3]; 712[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz710 == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz710 == LT)))",fontsize=16,color="burlywood",shape="box"];3595[label="vuz710/Pos vuz7100",fontsize=10,color="white",style="solid",shape="box"];712 -> 3595[label="",style="solid", color="burlywood", weight=9]; 3595 -> 747[label="",style="solid", color="burlywood", weight=3]; 3596[label="vuz710/Neg vuz7100",fontsize=10,color="white",style="solid",shape="box"];712 -> 3596[label="",style="solid", color="burlywood", weight=9]; 3596 -> 748[label="",style="solid", color="burlywood", weight=3]; 713[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpInt (Neg (Succ vuz38000)) vuz710 == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpInt (Neg (Succ vuz38000)) vuz710 == LT)))",fontsize=16,color="burlywood",shape="box"];3597[label="vuz710/Pos vuz7100",fontsize=10,color="white",style="solid",shape="box"];713 -> 3597[label="",style="solid", color="burlywood", weight=9]; 3597 -> 749[label="",style="solid", color="burlywood", weight=3]; 3598[label="vuz710/Neg vuz7100",fontsize=10,color="white",style="solid",shape="box"];713 -> 3598[label="",style="solid", color="burlywood", weight=9]; 3598 -> 750[label="",style="solid", color="burlywood", weight=3]; 714[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz710 == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz710 == LT)))",fontsize=16,color="burlywood",shape="box"];3599[label="vuz710/Pos vuz7100",fontsize=10,color="white",style="solid",shape="box"];714 -> 3599[label="",style="solid", color="burlywood", weight=9]; 3599 -> 751[label="",style="solid", color="burlywood", weight=3]; 3600[label="vuz710/Neg vuz7100",fontsize=10,color="white",style="solid",shape="box"];714 -> 3600[label="",style="solid", color="burlywood", weight=9]; 3600 -> 752[label="",style="solid", color="burlywood", weight=3]; 1503[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat (Succ vuz1050) (Succ vuz1060) == LT))",fontsize=16,color="black",shape="box"];1503 -> 1527[label="",style="solid", color="black", weight=3]; 1504[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat (Succ vuz1050) Zero == LT))",fontsize=16,color="black",shape="box"];1504 -> 1528[label="",style="solid", color="black", weight=3]; 1505[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat Zero (Succ vuz1060) == LT))",fontsize=16,color="black",shape="box"];1505 -> 1529[label="",style="solid", color="black", weight=3]; 1506[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];1506 -> 1530[label="",style="solid", color="black", weight=3]; 797[label="Pos (Succ vuz3000)",fontsize=16,color="green",shape="box"];798[label="absReal1 (Pos Zero) (not True)",fontsize=16,color="black",shape="box"];798 -> 838[label="",style="solid", color="black", weight=3]; 799[label="absReal1 (Pos Zero) True",fontsize=16,color="black",shape="box"];799 -> 839[label="",style="solid", color="black", weight=3]; 800[label="absReal0 (Neg (Succ vuz3000)) otherwise",fontsize=16,color="black",shape="box"];800 -> 840[label="",style="solid", color="black", weight=3]; 1935[label="absReal1 (Neg (Succ vuz130)) (not (primCmpNat (Succ vuz1310) (Succ vuz1320) == LT))",fontsize=16,color="black",shape="box"];1935 -> 1987[label="",style="solid", color="black", weight=3]; 1936[label="absReal1 (Neg (Succ vuz130)) (not (primCmpNat (Succ vuz1310) Zero == LT))",fontsize=16,color="black",shape="box"];1936 -> 1988[label="",style="solid", color="black", weight=3]; 1937[label="absReal1 (Neg (Succ vuz130)) (not (primCmpNat Zero (Succ vuz1320) == LT))",fontsize=16,color="black",shape="box"];1937 -> 1989[label="",style="solid", color="black", weight=3]; 1938[label="absReal1 (Neg (Succ vuz130)) (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];1938 -> 1990[label="",style="solid", color="black", weight=3]; 803[label="absReal1 (Neg Zero) False",fontsize=16,color="black",shape="box"];803 -> 845[label="",style="solid", color="black", weight=3]; 804[label="absReal1 (Neg Zero) True",fontsize=16,color="black",shape="box"];804 -> 846[label="",style="solid", color="black", weight=3]; 805 -> 770[label="",style="dashed", color="red", weight=0]; 805[label="absReal1 (Neg Zero) (not False)",fontsize=16,color="magenta"];806[label="primModNatS (Succ vuz6900) (Succ vuz6800)",fontsize=16,color="black",shape="box"];806 -> 847[label="",style="solid", color="black", weight=3]; 807[label="primModNatS Zero (Succ vuz6800)",fontsize=16,color="black",shape="box"];807 -> 848[label="",style="solid", color="black", weight=3]; 808[label="vuz6800",fontsize=16,color="green",shape="box"];809[label="vuz690",fontsize=16,color="green",shape="box"];810[label="vuz6800",fontsize=16,color="green",shape="box"];811[label="vuz690",fontsize=16,color="green",shape="box"];745[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpInt (Pos (Succ vuz38000)) (Pos vuz7100) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpInt (Pos (Succ vuz38000)) (Pos vuz7100) == LT)))",fontsize=16,color="black",shape="box"];745 -> 776[label="",style="solid", color="black", weight=3]; 746[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpInt (Pos (Succ vuz38000)) (Neg vuz7100) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpInt (Pos (Succ vuz38000)) (Neg vuz7100) == LT)))",fontsize=16,color="black",shape="box"];746 -> 777[label="",style="solid", color="black", weight=3]; 747[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz7100) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz7100) == LT)))",fontsize=16,color="burlywood",shape="box"];3601[label="vuz7100/Succ vuz71000",fontsize=10,color="white",style="solid",shape="box"];747 -> 3601[label="",style="solid", color="burlywood", weight=9]; 3601 -> 778[label="",style="solid", color="burlywood", weight=3]; 3602[label="vuz7100/Zero",fontsize=10,color="white",style="solid",shape="box"];747 -> 3602[label="",style="solid", color="burlywood", weight=9]; 3602 -> 779[label="",style="solid", color="burlywood", weight=3]; 748[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz7100) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz7100) == LT)))",fontsize=16,color="burlywood",shape="box"];3603[label="vuz7100/Succ vuz71000",fontsize=10,color="white",style="solid",shape="box"];748 -> 3603[label="",style="solid", color="burlywood", weight=9]; 3603 -> 780[label="",style="solid", color="burlywood", weight=3]; 3604[label="vuz7100/Zero",fontsize=10,color="white",style="solid",shape="box"];748 -> 3604[label="",style="solid", color="burlywood", weight=9]; 3604 -> 781[label="",style="solid", color="burlywood", weight=3]; 749[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpInt (Neg (Succ vuz38000)) (Pos vuz7100) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpInt (Neg (Succ vuz38000)) (Pos vuz7100) == LT)))",fontsize=16,color="black",shape="box"];749 -> 782[label="",style="solid", color="black", weight=3]; 750[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpInt (Neg (Succ vuz38000)) (Neg vuz7100) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpInt (Neg (Succ vuz38000)) (Neg vuz7100) == LT)))",fontsize=16,color="black",shape="box"];750 -> 783[label="",style="solid", color="black", weight=3]; 751[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz7100) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz7100) == LT)))",fontsize=16,color="burlywood",shape="box"];3605[label="vuz7100/Succ vuz71000",fontsize=10,color="white",style="solid",shape="box"];751 -> 3605[label="",style="solid", color="burlywood", weight=9]; 3605 -> 784[label="",style="solid", color="burlywood", weight=3]; 3606[label="vuz7100/Zero",fontsize=10,color="white",style="solid",shape="box"];751 -> 3606[label="",style="solid", color="burlywood", weight=9]; 3606 -> 785[label="",style="solid", color="burlywood", weight=3]; 752[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz7100) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz7100) == LT)))",fontsize=16,color="burlywood",shape="box"];3607[label="vuz7100/Succ vuz71000",fontsize=10,color="white",style="solid",shape="box"];752 -> 3607[label="",style="solid", color="burlywood", weight=9]; 3607 -> 786[label="",style="solid", color="burlywood", weight=3]; 3608[label="vuz7100/Zero",fontsize=10,color="white",style="solid",shape="box"];752 -> 3608[label="",style="solid", color="burlywood", weight=9]; 3608 -> 787[label="",style="solid", color="burlywood", weight=3]; 1527 -> 1467[label="",style="dashed", color="red", weight=0]; 1527[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat vuz1050 vuz1060 == LT))",fontsize=16,color="magenta"];1527 -> 1560[label="",style="dashed", color="magenta", weight=3]; 1527 -> 1561[label="",style="dashed", color="magenta", weight=3]; 1528 -> 692[label="",style="dashed", color="red", weight=0]; 1528[label="absReal1 (Pos (Succ vuz104)) (not (GT == LT))",fontsize=16,color="magenta"];1528 -> 1562[label="",style="dashed", color="magenta", weight=3]; 1529[label="absReal1 (Pos (Succ vuz104)) (not (LT == LT))",fontsize=16,color="black",shape="box"];1529 -> 1563[label="",style="solid", color="black", weight=3]; 1530[label="absReal1 (Pos (Succ vuz104)) (not (EQ == LT))",fontsize=16,color="black",shape="box"];1530 -> 1564[label="",style="solid", color="black", weight=3]; 838[label="absReal1 (Pos Zero) False",fontsize=16,color="black",shape="box"];838 -> 879[label="",style="solid", color="black", weight=3]; 839[label="Pos Zero",fontsize=16,color="green",shape="box"];840[label="absReal0 (Neg (Succ vuz3000)) True",fontsize=16,color="black",shape="box"];840 -> 880[label="",style="solid", color="black", weight=3]; 1987 -> 1882[label="",style="dashed", color="red", weight=0]; 1987[label="absReal1 (Neg (Succ vuz130)) (not (primCmpNat vuz1310 vuz1320 == LT))",fontsize=16,color="magenta"];1987 -> 2043[label="",style="dashed", color="magenta", weight=3]; 1987 -> 2044[label="",style="dashed", color="magenta", weight=3]; 1988[label="absReal1 (Neg (Succ vuz130)) (not (GT == LT))",fontsize=16,color="black",shape="box"];1988 -> 2045[label="",style="solid", color="black", weight=3]; 1989 -> 697[label="",style="dashed", color="red", weight=0]; 1989[label="absReal1 (Neg (Succ vuz130)) (not (LT == LT))",fontsize=16,color="magenta"];1989 -> 2046[label="",style="dashed", color="magenta", weight=3]; 1990[label="absReal1 (Neg (Succ vuz130)) (not (EQ == LT))",fontsize=16,color="black",shape="box"];1990 -> 2047[label="",style="solid", color="black", weight=3]; 845[label="absReal0 (Neg Zero) otherwise",fontsize=16,color="black",shape="box"];845 -> 885[label="",style="solid", color="black", weight=3]; 846[label="Neg Zero",fontsize=16,color="green",shape="box"];847[label="primModNatS0 vuz6900 vuz6800 (primGEqNatS vuz6900 vuz6800)",fontsize=16,color="burlywood",shape="box"];3609[label="vuz6900/Succ vuz69000",fontsize=10,color="white",style="solid",shape="box"];847 -> 3609[label="",style="solid", color="burlywood", weight=9]; 3609 -> 886[label="",style="solid", color="burlywood", weight=3]; 3610[label="vuz6900/Zero",fontsize=10,color="white",style="solid",shape="box"];847 -> 3610[label="",style="solid", color="burlywood", weight=9]; 3610 -> 887[label="",style="solid", color="burlywood", weight=3]; 848[label="Zero",fontsize=16,color="green",shape="box"];776 -> 2191[label="",style="dashed", color="red", weight=0]; 776[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpNat (Succ vuz38000) vuz7100 == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpNat (Succ vuz38000) vuz7100 == LT)))",fontsize=16,color="magenta"];776 -> 2192[label="",style="dashed", color="magenta", weight=3]; 776 -> 2193[label="",style="dashed", color="magenta", weight=3]; 776 -> 2194[label="",style="dashed", color="magenta", weight=3]; 776 -> 2195[label="",style="dashed", color="magenta", weight=3]; 776 -> 2196[label="",style="dashed", color="magenta", weight=3]; 776 -> 2197[label="",style="dashed", color="magenta", weight=3]; 777[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) (not (GT == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos (Succ vuz38000))) (not (GT == LT)))",fontsize=16,color="black",shape="triangle"];777 -> 814[label="",style="solid", color="black", weight=3]; 778[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz71000)) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz71000)) == LT)))",fontsize=16,color="black",shape="box"];778 -> 815[label="",style="solid", color="black", weight=3]; 779[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];779 -> 816[label="",style="solid", color="black", weight=3]; 780[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz71000)) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz71000)) == LT)))",fontsize=16,color="black",shape="box"];780 -> 817[label="",style="solid", color="black", weight=3]; 781[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)))",fontsize=16,color="black",shape="box"];781 -> 818[label="",style="solid", color="black", weight=3]; 782[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) (not (LT == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg (Succ vuz38000))) (not (LT == LT)))",fontsize=16,color="black",shape="triangle"];782 -> 819[label="",style="solid", color="black", weight=3]; 783 -> 2301[label="",style="dashed", color="red", weight=0]; 783[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpNat vuz7100 (Succ vuz38000) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpNat vuz7100 (Succ vuz38000) == LT)))",fontsize=16,color="magenta"];783 -> 2302[label="",style="dashed", color="magenta", weight=3]; 783 -> 2303[label="",style="dashed", color="magenta", weight=3]; 783 -> 2304[label="",style="dashed", color="magenta", weight=3]; 783 -> 2305[label="",style="dashed", color="magenta", weight=3]; 783 -> 2306[label="",style="dashed", color="magenta", weight=3]; 783 -> 2307[label="",style="dashed", color="magenta", weight=3]; 784[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz71000)) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz71000)) == LT)))",fontsize=16,color="black",shape="box"];784 -> 822[label="",style="solid", color="black", weight=3]; 785[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];785 -> 823[label="",style="solid", color="black", weight=3]; 786[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz71000)) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz71000)) == LT)))",fontsize=16,color="black",shape="box"];786 -> 824[label="",style="solid", color="black", weight=3]; 787[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)))",fontsize=16,color="black",shape="box"];787 -> 825[label="",style="solid", color="black", weight=3]; 1560[label="vuz1050",fontsize=16,color="green",shape="box"];1561[label="vuz1060",fontsize=16,color="green",shape="box"];1562[label="vuz104",fontsize=16,color="green",shape="box"];1563[label="absReal1 (Pos (Succ vuz104)) (not True)",fontsize=16,color="black",shape="box"];1563 -> 1595[label="",style="solid", color="black", weight=3]; 1564 -> 725[label="",style="dashed", color="red", weight=0]; 1564[label="absReal1 (Pos (Succ vuz104)) (not False)",fontsize=16,color="magenta"];1564 -> 1596[label="",style="dashed", color="magenta", weight=3]; 879[label="absReal0 (Pos Zero) otherwise",fontsize=16,color="black",shape="box"];879 -> 922[label="",style="solid", color="black", weight=3]; 880[label="`negate` Neg (Succ vuz3000)",fontsize=16,color="black",shape="box"];880 -> 923[label="",style="solid", color="black", weight=3]; 2043[label="vuz1310",fontsize=16,color="green",shape="box"];2044[label="vuz1320",fontsize=16,color="green",shape="box"];2045[label="absReal1 (Neg (Succ vuz130)) (not False)",fontsize=16,color="black",shape="triangle"];2045 -> 2087[label="",style="solid", color="black", weight=3]; 2046[label="vuz130",fontsize=16,color="green",shape="box"];2047 -> 2045[label="",style="dashed", color="red", weight=0]; 2047[label="absReal1 (Neg (Succ vuz130)) (not False)",fontsize=16,color="magenta"];885[label="absReal0 (Neg Zero) True",fontsize=16,color="black",shape="box"];885 -> 929[label="",style="solid", color="black", weight=3]; 886[label="primModNatS0 (Succ vuz69000) vuz6800 (primGEqNatS (Succ vuz69000) vuz6800)",fontsize=16,color="burlywood",shape="box"];3611[label="vuz6800/Succ vuz68000",fontsize=10,color="white",style="solid",shape="box"];886 -> 3611[label="",style="solid", color="burlywood", weight=9]; 3611 -> 930[label="",style="solid", color="burlywood", weight=3]; 3612[label="vuz6800/Zero",fontsize=10,color="white",style="solid",shape="box"];886 -> 3612[label="",style="solid", color="burlywood", weight=9]; 3612 -> 931[label="",style="solid", color="burlywood", weight=3]; 887[label="primModNatS0 Zero vuz6800 (primGEqNatS Zero vuz6800)",fontsize=16,color="burlywood",shape="box"];3613[label="vuz6800/Succ vuz68000",fontsize=10,color="white",style="solid",shape="box"];887 -> 3613[label="",style="solid", color="burlywood", weight=9]; 3613 -> 932[label="",style="solid", color="burlywood", weight=3]; 3614[label="vuz6800/Zero",fontsize=10,color="white",style="solid",shape="box"];887 -> 3614[label="",style="solid", color="burlywood", weight=9]; 3614 -> 933[label="",style="solid", color="burlywood", weight=3]; 2192[label="vuz370",fontsize=16,color="green",shape="box"];2193[label="vuz7100",fontsize=16,color="green",shape="box"];2194[label="vuz62",fontsize=16,color="green",shape="box"];2195[label="vuz360",fontsize=16,color="green",shape="box"];2196[label="Succ vuz38000",fontsize=16,color="green",shape="box"];2197[label="vuz38000",fontsize=16,color="green",shape="box"];2191[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat vuz143 vuz144 == LT)) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat vuz143 vuz144 == LT)))",fontsize=16,color="burlywood",shape="triangle"];3615[label="vuz143/Succ vuz1430",fontsize=10,color="white",style="solid",shape="box"];2191 -> 3615[label="",style="solid", color="burlywood", weight=9]; 3615 -> 2252[label="",style="solid", color="burlywood", weight=3]; 3616[label="vuz143/Zero",fontsize=10,color="white",style="solid",shape="box"];2191 -> 3616[label="",style="solid", color="burlywood", weight=9]; 3616 -> 2253[label="",style="solid", color="burlywood", weight=3]; 814[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) (not False) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos (Succ vuz38000))) (not False))",fontsize=16,color="black",shape="triangle"];814 -> 851[label="",style="solid", color="black", weight=3]; 815[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz71000) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz71000) == LT)))",fontsize=16,color="black",shape="box"];815 -> 852[label="",style="solid", color="black", weight=3]; 816[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not (EQ == LT)))",fontsize=16,color="black",shape="triangle"];816 -> 853[label="",style="solid", color="black", weight=3]; 817[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (GT == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not (GT == LT)))",fontsize=16,color="black",shape="box"];817 -> 854[label="",style="solid", color="black", weight=3]; 818 -> 816[label="",style="dashed", color="red", weight=0]; 818[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not (EQ == LT)))",fontsize=16,color="magenta"];819[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) (not True) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg (Succ vuz38000))) (not True))",fontsize=16,color="black",shape="box"];819 -> 855[label="",style="solid", color="black", weight=3]; 2302[label="vuz370",fontsize=16,color="green",shape="box"];2303[label="vuz7100",fontsize=16,color="green",shape="box"];2304[label="vuz360",fontsize=16,color="green",shape="box"];2305[label="vuz62",fontsize=16,color="green",shape="box"];2306[label="vuz38000",fontsize=16,color="green",shape="box"];2307[label="Succ vuz38000",fontsize=16,color="green",shape="box"];2301[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat vuz153 vuz154 == LT)) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat vuz153 vuz154 == LT)))",fontsize=16,color="burlywood",shape="triangle"];3617[label="vuz153/Succ vuz1530",fontsize=10,color="white",style="solid",shape="box"];2301 -> 3617[label="",style="solid", color="burlywood", weight=9]; 3617 -> 2362[label="",style="solid", color="burlywood", weight=3]; 3618[label="vuz153/Zero",fontsize=10,color="white",style="solid",shape="box"];2301 -> 3618[label="",style="solid", color="burlywood", weight=9]; 3618 -> 2363[label="",style="solid", color="burlywood", weight=3]; 822[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (LT == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not (LT == LT)))",fontsize=16,color="black",shape="box"];822 -> 858[label="",style="solid", color="black", weight=3]; 823[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not (EQ == LT)))",fontsize=16,color="black",shape="triangle"];823 -> 859[label="",style="solid", color="black", weight=3]; 824[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz71000) Zero == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz71000) Zero == LT)))",fontsize=16,color="black",shape="box"];824 -> 860[label="",style="solid", color="black", weight=3]; 825 -> 823[label="",style="dashed", color="red", weight=0]; 825[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not (EQ == LT)))",fontsize=16,color="magenta"];1595[label="absReal1 (Pos (Succ vuz104)) False",fontsize=16,color="black",shape="box"];1595 -> 1619[label="",style="solid", color="black", weight=3]; 1596[label="vuz104",fontsize=16,color="green",shape="box"];922[label="absReal0 (Pos Zero) True",fontsize=16,color="black",shape="box"];922 -> 956[label="",style="solid", color="black", weight=3]; 923[label="primNegInt (Neg (Succ vuz3000))",fontsize=16,color="black",shape="triangle"];923 -> 957[label="",style="solid", color="black", weight=3]; 2087[label="absReal1 (Neg (Succ vuz130)) True",fontsize=16,color="black",shape="box"];2087 -> 2139[label="",style="solid", color="black", weight=3]; 929[label="`negate` Neg Zero",fontsize=16,color="black",shape="box"];929 -> 963[label="",style="solid", color="black", weight=3]; 930[label="primModNatS0 (Succ vuz69000) (Succ vuz68000) (primGEqNatS (Succ vuz69000) (Succ vuz68000))",fontsize=16,color="black",shape="box"];930 -> 964[label="",style="solid", color="black", weight=3]; 931[label="primModNatS0 (Succ vuz69000) Zero (primGEqNatS (Succ vuz69000) Zero)",fontsize=16,color="black",shape="box"];931 -> 965[label="",style="solid", color="black", weight=3]; 932[label="primModNatS0 Zero (Succ vuz68000) (primGEqNatS Zero (Succ vuz68000))",fontsize=16,color="black",shape="box"];932 -> 966[label="",style="solid", color="black", weight=3]; 933[label="primModNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];933 -> 967[label="",style="solid", color="black", weight=3]; 2252[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat (Succ vuz1430) vuz144 == LT)) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat (Succ vuz1430) vuz144 == LT)))",fontsize=16,color="burlywood",shape="box"];3619[label="vuz144/Succ vuz1440",fontsize=10,color="white",style="solid",shape="box"];2252 -> 3619[label="",style="solid", color="burlywood", weight=9]; 3619 -> 2267[label="",style="solid", color="burlywood", weight=3]; 3620[label="vuz144/Zero",fontsize=10,color="white",style="solid",shape="box"];2252 -> 3620[label="",style="solid", color="burlywood", weight=9]; 3620 -> 2268[label="",style="solid", color="burlywood", weight=3]; 2253[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat Zero vuz144 == LT)) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat Zero vuz144 == LT)))",fontsize=16,color="burlywood",shape="box"];3621[label="vuz144/Succ vuz1440",fontsize=10,color="white",style="solid",shape="box"];2253 -> 3621[label="",style="solid", color="burlywood", weight=9]; 3621 -> 2269[label="",style="solid", color="burlywood", weight=3]; 3622[label="vuz144/Zero",fontsize=10,color="white",style="solid",shape="box"];2253 -> 3622[label="",style="solid", color="burlywood", weight=9]; 3622 -> 2270[label="",style="solid", color="burlywood", weight=3]; 851[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) True == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos (Succ vuz38000))) True)",fontsize=16,color="black",shape="box"];851 -> 940[label="",style="solid", color="black", weight=3]; 852[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (LT == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not (LT == LT)))",fontsize=16,color="black",shape="box"];852 -> 941[label="",style="solid", color="black", weight=3]; 853[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not False) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not False))",fontsize=16,color="black",shape="triangle"];853 -> 942[label="",style="solid", color="black", weight=3]; 854 -> 853[label="",style="dashed", color="red", weight=0]; 854[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not False) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not False))",fontsize=16,color="magenta"];855[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) False == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg (Succ vuz38000))) False)",fontsize=16,color="black",shape="box"];855 -> 943[label="",style="solid", color="black", weight=3]; 2362[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat (Succ vuz1530) vuz154 == LT)) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat (Succ vuz1530) vuz154 == LT)))",fontsize=16,color="burlywood",shape="box"];3623[label="vuz154/Succ vuz1540",fontsize=10,color="white",style="solid",shape="box"];2362 -> 3623[label="",style="solid", color="burlywood", weight=9]; 3623 -> 2415[label="",style="solid", color="burlywood", weight=3]; 3624[label="vuz154/Zero",fontsize=10,color="white",style="solid",shape="box"];2362 -> 3624[label="",style="solid", color="burlywood", weight=9]; 3624 -> 2416[label="",style="solid", color="burlywood", weight=3]; 2363[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat Zero vuz154 == LT)) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat Zero vuz154 == LT)))",fontsize=16,color="burlywood",shape="box"];3625[label="vuz154/Succ vuz1540",fontsize=10,color="white",style="solid",shape="box"];2363 -> 3625[label="",style="solid", color="burlywood", weight=9]; 3625 -> 2417[label="",style="solid", color="burlywood", weight=3]; 3626[label="vuz154/Zero",fontsize=10,color="white",style="solid",shape="box"];2363 -> 3626[label="",style="solid", color="burlywood", weight=9]; 3626 -> 2418[label="",style="solid", color="burlywood", weight=3]; 858[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not True) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not True))",fontsize=16,color="black",shape="box"];858 -> 946[label="",style="solid", color="black", weight=3]; 859[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not False) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not False))",fontsize=16,color="black",shape="triangle"];859 -> 947[label="",style="solid", color="black", weight=3]; 860[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (GT == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not (GT == LT)))",fontsize=16,color="black",shape="box"];860 -> 948[label="",style="solid", color="black", weight=3]; 1619[label="absReal0 (Pos (Succ vuz104)) otherwise",fontsize=16,color="black",shape="box"];1619 -> 1653[label="",style="solid", color="black", weight=3]; 956[label="`negate` Pos Zero",fontsize=16,color="black",shape="box"];956 -> 985[label="",style="solid", color="black", weight=3]; 957[label="Pos (Succ vuz3000)",fontsize=16,color="green",shape="box"];2139[label="Neg (Succ vuz130)",fontsize=16,color="green",shape="box"];963[label="primNegInt (Neg Zero)",fontsize=16,color="black",shape="triangle"];963 -> 991[label="",style="solid", color="black", weight=3]; 964 -> 2427[label="",style="dashed", color="red", weight=0]; 964[label="primModNatS0 (Succ vuz69000) (Succ vuz68000) (primGEqNatS vuz69000 vuz68000)",fontsize=16,color="magenta"];964 -> 2428[label="",style="dashed", color="magenta", weight=3]; 964 -> 2429[label="",style="dashed", color="magenta", weight=3]; 964 -> 2430[label="",style="dashed", color="magenta", weight=3]; 964 -> 2431[label="",style="dashed", color="magenta", weight=3]; 965[label="primModNatS0 (Succ vuz69000) Zero True",fontsize=16,color="black",shape="box"];965 -> 994[label="",style="solid", color="black", weight=3]; 966[label="primModNatS0 Zero (Succ vuz68000) False",fontsize=16,color="black",shape="box"];966 -> 995[label="",style="solid", color="black", weight=3]; 967[label="primModNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];967 -> 996[label="",style="solid", color="black", weight=3]; 2267[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat (Succ vuz1430) (Succ vuz1440) == LT)) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat (Succ vuz1430) (Succ vuz1440) == LT)))",fontsize=16,color="black",shape="box"];2267 -> 2364[label="",style="solid", color="black", weight=3]; 2268[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat (Succ vuz1430) Zero == LT)) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat (Succ vuz1430) Zero == LT)))",fontsize=16,color="black",shape="box"];2268 -> 2365[label="",style="solid", color="black", weight=3]; 2269[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat Zero (Succ vuz1440) == LT)) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat Zero (Succ vuz1440) == LT)))",fontsize=16,color="black",shape="box"];2269 -> 2366[label="",style="solid", color="black", weight=3]; 2270[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat Zero Zero == LT)) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat Zero Zero == LT)))",fontsize=16,color="black",shape="box"];2270 -> 2367[label="",style="solid", color="black", weight=3]; 940 -> 1150[label="",style="dashed", color="red", weight=0]; 940[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (Pos (Succ vuz38000)) == vuz62) (abs (Integer vuz370)) (Integer (Pos (Succ vuz38000)))",fontsize=16,color="magenta"];940 -> 1151[label="",style="dashed", color="magenta", weight=3]; 940 -> 1152[label="",style="dashed", color="magenta", weight=3]; 941[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not True) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not True))",fontsize=16,color="black",shape="box"];941 -> 1005[label="",style="solid", color="black", weight=3]; 942[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) True == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) True)",fontsize=16,color="black",shape="box"];942 -> 1006[label="",style="solid", color="black", weight=3]; 943[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg (Succ vuz38000))) otherwise == vuz62) (abs (Integer vuz370)) (absReal0 (Integer (Neg (Succ vuz38000))) otherwise)",fontsize=16,color="black",shape="box"];943 -> 1007[label="",style="solid", color="black", weight=3]; 2415[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat (Succ vuz1530) (Succ vuz1540) == LT)) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat (Succ vuz1530) (Succ vuz1540) == LT)))",fontsize=16,color="black",shape="box"];2415 -> 2468[label="",style="solid", color="black", weight=3]; 2416[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat (Succ vuz1530) Zero == LT)) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat (Succ vuz1530) Zero == LT)))",fontsize=16,color="black",shape="box"];2416 -> 2469[label="",style="solid", color="black", weight=3]; 2417[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat Zero (Succ vuz1540) == LT)) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat Zero (Succ vuz1540) == LT)))",fontsize=16,color="black",shape="box"];2417 -> 2470[label="",style="solid", color="black", weight=3]; 2418[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat Zero Zero == LT)) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat Zero Zero == LT)))",fontsize=16,color="black",shape="box"];2418 -> 2471[label="",style="solid", color="black", weight=3]; 946[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) False == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) False)",fontsize=16,color="black",shape="box"];946 -> 1012[label="",style="solid", color="black", weight=3]; 947[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) True == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) True)",fontsize=16,color="black",shape="box"];947 -> 1013[label="",style="solid", color="black", weight=3]; 948 -> 859[label="",style="dashed", color="red", weight=0]; 948[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not False) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not False))",fontsize=16,color="magenta"];1653[label="absReal0 (Pos (Succ vuz104)) True",fontsize=16,color="black",shape="box"];1653 -> 1695[label="",style="solid", color="black", weight=3]; 985[label="primNegInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];985 -> 1029[label="",style="solid", color="black", weight=3]; 991[label="Pos Zero",fontsize=16,color="green",shape="box"];2428[label="vuz69000",fontsize=16,color="green",shape="box"];2429[label="vuz68000",fontsize=16,color="green",shape="box"];2430[label="vuz69000",fontsize=16,color="green",shape="box"];2431[label="vuz68000",fontsize=16,color="green",shape="box"];2427[label="primModNatS0 (Succ vuz158) (Succ vuz159) (primGEqNatS vuz160 vuz161)",fontsize=16,color="burlywood",shape="triangle"];3627[label="vuz160/Succ vuz1600",fontsize=10,color="white",style="solid",shape="box"];2427 -> 3627[label="",style="solid", color="burlywood", weight=9]; 3627 -> 2472[label="",style="solid", color="burlywood", weight=3]; 3628[label="vuz160/Zero",fontsize=10,color="white",style="solid",shape="box"];2427 -> 3628[label="",style="solid", color="burlywood", weight=9]; 3628 -> 2473[label="",style="solid", color="burlywood", weight=3]; 994 -> 772[label="",style="dashed", color="red", weight=0]; 994[label="primModNatS (primMinusNatS (Succ vuz69000) Zero) (Succ Zero)",fontsize=16,color="magenta"];994 -> 1039[label="",style="dashed", color="magenta", weight=3]; 994 -> 1040[label="",style="dashed", color="magenta", weight=3]; 995[label="Succ Zero",fontsize=16,color="green",shape="box"];996 -> 772[label="",style="dashed", color="red", weight=0]; 996[label="primModNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];996 -> 1041[label="",style="dashed", color="magenta", weight=3]; 996 -> 1042[label="",style="dashed", color="magenta", weight=3]; 2364 -> 2191[label="",style="dashed", color="red", weight=0]; 2364[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat vuz1430 vuz1440 == LT)) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat vuz1430 vuz1440 == LT)))",fontsize=16,color="magenta"];2364 -> 2419[label="",style="dashed", color="magenta", weight=3]; 2364 -> 2420[label="",style="dashed", color="magenta", weight=3]; 2365 -> 777[label="",style="dashed", color="red", weight=0]; 2365[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not (GT == LT)) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not (GT == LT)))",fontsize=16,color="magenta"];2365 -> 2421[label="",style="dashed", color="magenta", weight=3]; 2365 -> 2422[label="",style="dashed", color="magenta", weight=3]; 2365 -> 2423[label="",style="dashed", color="magenta", weight=3]; 2365 -> 2424[label="",style="dashed", color="magenta", weight=3]; 2366[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not (LT == LT)) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not (LT == LT)))",fontsize=16,color="black",shape="box"];2366 -> 2425[label="",style="solid", color="black", weight=3]; 2367[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not (EQ == LT)) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not (EQ == LT)))",fontsize=16,color="black",shape="box"];2367 -> 2426[label="",style="solid", color="black", weight=3]; 1151 -> 211[label="",style="dashed", color="red", weight=0]; 1151[label="Integer (Pos (Succ vuz38000)) == vuz62",fontsize=16,color="magenta"];1151 -> 1167[label="",style="dashed", color="magenta", weight=3]; 1151 -> 1168[label="",style="dashed", color="magenta", weight=3]; 1152[label="Pos (Succ vuz38000)",fontsize=16,color="green",shape="box"];1150[label="Integer vuz360 `quot` gcd0Gcd'1 vuz93 (abs (Integer vuz370)) (Integer vuz94)",fontsize=16,color="burlywood",shape="triangle"];3629[label="vuz93/False",fontsize=10,color="white",style="solid",shape="box"];1150 -> 3629[label="",style="solid", color="burlywood", weight=9]; 3629 -> 1169[label="",style="solid", color="burlywood", weight=3]; 3630[label="vuz93/True",fontsize=10,color="white",style="solid",shape="box"];1150 -> 3630[label="",style="solid", color="burlywood", weight=9]; 3630 -> 1170[label="",style="solid", color="burlywood", weight=3]; 1005[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) False == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) False)",fontsize=16,color="black",shape="box"];1005 -> 1047[label="",style="solid", color="black", weight=3]; 1006 -> 1150[label="",style="dashed", color="red", weight=0]; 1006[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (Pos Zero) == vuz62) (abs (Integer vuz370)) (Integer (Pos Zero))",fontsize=16,color="magenta"];1006 -> 1155[label="",style="dashed", color="magenta", weight=3]; 1006 -> 1156[label="",style="dashed", color="magenta", weight=3]; 1007[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg (Succ vuz38000))) True == vuz62) (abs (Integer vuz370)) (absReal0 (Integer (Neg (Succ vuz38000))) True)",fontsize=16,color="black",shape="box"];1007 -> 1052[label="",style="solid", color="black", weight=3]; 2468 -> 2301[label="",style="dashed", color="red", weight=0]; 2468[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat vuz1530 vuz1540 == LT)) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat vuz1530 vuz1540 == LT)))",fontsize=16,color="magenta"];2468 -> 2503[label="",style="dashed", color="magenta", weight=3]; 2468 -> 2504[label="",style="dashed", color="magenta", weight=3]; 2469[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not (GT == LT)) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not (GT == LT)))",fontsize=16,color="black",shape="box"];2469 -> 2505[label="",style="solid", color="black", weight=3]; 2470 -> 782[label="",style="dashed", color="red", weight=0]; 2470[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not (LT == LT)) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not (LT == LT)))",fontsize=16,color="magenta"];2470 -> 2506[label="",style="dashed", color="magenta", weight=3]; 2470 -> 2507[label="",style="dashed", color="magenta", weight=3]; 2470 -> 2508[label="",style="dashed", color="magenta", weight=3]; 2470 -> 2509[label="",style="dashed", color="magenta", weight=3]; 2471[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not (EQ == LT)) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not (EQ == LT)))",fontsize=16,color="black",shape="box"];2471 -> 2510[label="",style="solid", color="black", weight=3]; 1012[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg Zero)) otherwise == vuz62) (abs (Integer vuz370)) (absReal0 (Integer (Neg Zero)) otherwise)",fontsize=16,color="black",shape="box"];1012 -> 1057[label="",style="solid", color="black", weight=3]; 1013 -> 1150[label="",style="dashed", color="red", weight=0]; 1013[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (Neg Zero) == vuz62) (abs (Integer vuz370)) (Integer (Neg Zero))",fontsize=16,color="magenta"];1013 -> 1157[label="",style="dashed", color="magenta", weight=3]; 1013 -> 1158[label="",style="dashed", color="magenta", weight=3]; 1695[label="`negate` Pos (Succ vuz104)",fontsize=16,color="black",shape="box"];1695 -> 1701[label="",style="solid", color="black", weight=3]; 1029[label="Neg Zero",fontsize=16,color="green",shape="box"];2472[label="primModNatS0 (Succ vuz158) (Succ vuz159) (primGEqNatS (Succ vuz1600) vuz161)",fontsize=16,color="burlywood",shape="box"];3631[label="vuz161/Succ vuz1610",fontsize=10,color="white",style="solid",shape="box"];2472 -> 3631[label="",style="solid", color="burlywood", weight=9]; 3631 -> 2511[label="",style="solid", color="burlywood", weight=3]; 3632[label="vuz161/Zero",fontsize=10,color="white",style="solid",shape="box"];2472 -> 3632[label="",style="solid", color="burlywood", weight=9]; 3632 -> 2512[label="",style="solid", color="burlywood", weight=3]; 2473[label="primModNatS0 (Succ vuz158) (Succ vuz159) (primGEqNatS Zero vuz161)",fontsize=16,color="burlywood",shape="box"];3633[label="vuz161/Succ vuz1610",fontsize=10,color="white",style="solid",shape="box"];2473 -> 3633[label="",style="solid", color="burlywood", weight=9]; 3633 -> 2513[label="",style="solid", color="burlywood", weight=3]; 3634[label="vuz161/Zero",fontsize=10,color="white",style="solid",shape="box"];2473 -> 3634[label="",style="solid", color="burlywood", weight=9]; 3634 -> 2514[label="",style="solid", color="burlywood", weight=3]; 1039[label="Zero",fontsize=16,color="green",shape="box"];1040 -> 1022[label="",style="dashed", color="red", weight=0]; 1040[label="primMinusNatS (Succ vuz69000) Zero",fontsize=16,color="magenta"];1040 -> 1080[label="",style="dashed", color="magenta", weight=3]; 1040 -> 1081[label="",style="dashed", color="magenta", weight=3]; 1041[label="Zero",fontsize=16,color="green",shape="box"];1042 -> 1022[label="",style="dashed", color="red", weight=0]; 1042[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];1042 -> 1082[label="",style="dashed", color="magenta", weight=3]; 1042 -> 1083[label="",style="dashed", color="magenta", weight=3]; 2419[label="vuz1440",fontsize=16,color="green",shape="box"];2420[label="vuz1430",fontsize=16,color="green",shape="box"];2421[label="vuz145",fontsize=16,color="green",shape="box"];2422[label="vuz146",fontsize=16,color="green",shape="box"];2423[label="vuz142",fontsize=16,color="green",shape="box"];2424[label="vuz141",fontsize=16,color="green",shape="box"];2425[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not True) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not True))",fontsize=16,color="black",shape="box"];2425 -> 2474[label="",style="solid", color="black", weight=3]; 2426 -> 814[label="",style="dashed", color="red", weight=0]; 2426[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not False) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not False))",fontsize=16,color="magenta"];2426 -> 2475[label="",style="dashed", color="magenta", weight=3]; 2426 -> 2476[label="",style="dashed", color="magenta", weight=3]; 2426 -> 2477[label="",style="dashed", color="magenta", weight=3]; 2426 -> 2478[label="",style="dashed", color="magenta", weight=3]; 1167[label="Pos (Succ vuz38000)",fontsize=16,color="green",shape="box"];1168[label="vuz62",fontsize=16,color="green",shape="box"];1169[label="Integer vuz360 `quot` gcd0Gcd'1 False (abs (Integer vuz370)) (Integer vuz94)",fontsize=16,color="black",shape="box"];1169 -> 1214[label="",style="solid", color="black", weight=3]; 1170[label="Integer vuz360 `quot` gcd0Gcd'1 True (abs (Integer vuz370)) (Integer vuz94)",fontsize=16,color="black",shape="box"];1170 -> 1215[label="",style="solid", color="black", weight=3]; 1047[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos Zero)) otherwise == vuz62) (abs (Integer vuz370)) (absReal0 (Integer (Pos Zero)) otherwise)",fontsize=16,color="black",shape="box"];1047 -> 1095[label="",style="solid", color="black", weight=3]; 1155 -> 211[label="",style="dashed", color="red", weight=0]; 1155[label="Integer (Pos Zero) == vuz62",fontsize=16,color="magenta"];1155 -> 1171[label="",style="dashed", color="magenta", weight=3]; 1155 -> 1172[label="",style="dashed", color="magenta", weight=3]; 1156[label="Pos Zero",fontsize=16,color="green",shape="box"];1052[label="Integer vuz360 `quot` gcd0Gcd'1 (`negate` Integer (Neg (Succ vuz38000)) == vuz62) (abs (Integer vuz370)) (`negate` Integer (Neg (Succ vuz38000)))",fontsize=16,color="black",shape="box"];1052 -> 1100[label="",style="solid", color="black", weight=3]; 2503[label="vuz1530",fontsize=16,color="green",shape="box"];2504[label="vuz1540",fontsize=16,color="green",shape="box"];2505[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not False) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not False))",fontsize=16,color="black",shape="triangle"];2505 -> 2546[label="",style="solid", color="black", weight=3]; 2506[label="vuz155",fontsize=16,color="green",shape="box"];2507[label="vuz152",fontsize=16,color="green",shape="box"];2508[label="vuz156",fontsize=16,color="green",shape="box"];2509[label="vuz151",fontsize=16,color="green",shape="box"];2510 -> 2505[label="",style="dashed", color="red", weight=0]; 2510[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not False) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not False))",fontsize=16,color="magenta"];1057[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg Zero)) True == vuz62) (abs (Integer vuz370)) (absReal0 (Integer (Neg Zero)) True)",fontsize=16,color="black",shape="box"];1057 -> 1106[label="",style="solid", color="black", weight=3]; 1157 -> 211[label="",style="dashed", color="red", weight=0]; 1157[label="Integer (Neg Zero) == vuz62",fontsize=16,color="magenta"];1157 -> 1173[label="",style="dashed", color="magenta", weight=3]; 1157 -> 1174[label="",style="dashed", color="magenta", weight=3]; 1158[label="Neg Zero",fontsize=16,color="green",shape="box"];1701[label="primNegInt (Pos (Succ vuz104))",fontsize=16,color="black",shape="triangle"];1701 -> 1704[label="",style="solid", color="black", weight=3]; 2511[label="primModNatS0 (Succ vuz158) (Succ vuz159) (primGEqNatS (Succ vuz1600) (Succ vuz1610))",fontsize=16,color="black",shape="box"];2511 -> 2547[label="",style="solid", color="black", weight=3]; 2512[label="primModNatS0 (Succ vuz158) (Succ vuz159) (primGEqNatS (Succ vuz1600) Zero)",fontsize=16,color="black",shape="box"];2512 -> 2548[label="",style="solid", color="black", weight=3]; 2513[label="primModNatS0 (Succ vuz158) (Succ vuz159) (primGEqNatS Zero (Succ vuz1610))",fontsize=16,color="black",shape="box"];2513 -> 2549[label="",style="solid", color="black", weight=3]; 2514[label="primModNatS0 (Succ vuz158) (Succ vuz159) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];2514 -> 2550[label="",style="solid", color="black", weight=3]; 1080[label="Succ vuz69000",fontsize=16,color="green",shape="box"];1081[label="Zero",fontsize=16,color="green",shape="box"];1082[label="Zero",fontsize=16,color="green",shape="box"];1083[label="Zero",fontsize=16,color="green",shape="box"];2474[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) False == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) False)",fontsize=16,color="black",shape="box"];2474 -> 2515[label="",style="solid", color="black", weight=3]; 2475[label="vuz145",fontsize=16,color="green",shape="box"];2476[label="vuz146",fontsize=16,color="green",shape="box"];2477[label="vuz142",fontsize=16,color="green",shape="box"];2478[label="vuz141",fontsize=16,color="green",shape="box"];1214[label="Integer vuz360 `quot` gcd0Gcd'0 (abs (Integer vuz370)) (Integer vuz94)",fontsize=16,color="black",shape="box"];1214 -> 1256[label="",style="solid", color="black", weight=3]; 1215[label="Integer vuz360 `quot` abs (Integer vuz370)",fontsize=16,color="black",shape="box"];1215 -> 1257[label="",style="solid", color="black", weight=3]; 1095[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos Zero)) True == vuz62) (abs (Integer vuz370)) (absReal0 (Integer (Pos Zero)) True)",fontsize=16,color="black",shape="box"];1095 -> 1147[label="",style="solid", color="black", weight=3]; 1171[label="Pos Zero",fontsize=16,color="green",shape="box"];1172[label="vuz62",fontsize=16,color="green",shape="box"];1100 -> 1150[label="",style="dashed", color="red", weight=0]; 1100[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (primNegInt (Neg (Succ vuz38000))) == vuz62) (abs (Integer vuz370)) (Integer (primNegInt (Neg (Succ vuz38000))))",fontsize=16,color="magenta"];1100 -> 1163[label="",style="dashed", color="magenta", weight=3]; 1100 -> 1164[label="",style="dashed", color="magenta", weight=3]; 2546[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) True == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) True)",fontsize=16,color="black",shape="box"];2546 -> 2555[label="",style="solid", color="black", weight=3]; 1106[label="Integer vuz360 `quot` gcd0Gcd'1 (`negate` Integer (Neg Zero) == vuz62) (abs (Integer vuz370)) (`negate` Integer (Neg Zero))",fontsize=16,color="black",shape="box"];1106 -> 1180[label="",style="solid", color="black", weight=3]; 1173[label="Neg Zero",fontsize=16,color="green",shape="box"];1174[label="vuz62",fontsize=16,color="green",shape="box"];1704[label="Neg (Succ vuz104)",fontsize=16,color="green",shape="box"];2547 -> 2427[label="",style="dashed", color="red", weight=0]; 2547[label="primModNatS0 (Succ vuz158) (Succ vuz159) (primGEqNatS vuz1600 vuz1610)",fontsize=16,color="magenta"];2547 -> 2556[label="",style="dashed", color="magenta", weight=3]; 2547 -> 2557[label="",style="dashed", color="magenta", weight=3]; 2548[label="primModNatS0 (Succ vuz158) (Succ vuz159) True",fontsize=16,color="black",shape="triangle"];2548 -> 2558[label="",style="solid", color="black", weight=3]; 2549[label="primModNatS0 (Succ vuz158) (Succ vuz159) False",fontsize=16,color="black",shape="box"];2549 -> 2559[label="",style="solid", color="black", weight=3]; 2550 -> 2548[label="",style="dashed", color="red", weight=0]; 2550[label="primModNatS0 (Succ vuz158) (Succ vuz159) True",fontsize=16,color="magenta"];2515[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos (Succ vuz142))) otherwise == vuz145) (abs (Integer vuz146)) (absReal0 (Integer (Pos (Succ vuz142))) otherwise)",fontsize=16,color="black",shape="box"];2515 -> 2551[label="",style="solid", color="black", weight=3]; 1256[label="Integer vuz360 `quot` gcd0Gcd' (Integer vuz94) (abs (Integer vuz370) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1256 -> 1326[label="",style="solid", color="black", weight=3]; 1257[label="Integer vuz360 `quot` absReal (Integer vuz370)",fontsize=16,color="black",shape="box"];1257 -> 1327[label="",style="solid", color="black", weight=3]; 1147[label="Integer vuz360 `quot` gcd0Gcd'1 (`negate` Integer (Pos Zero) == vuz62) (abs (Integer vuz370)) (`negate` Integer (Pos Zero))",fontsize=16,color="black",shape="box"];1147 -> 1210[label="",style="solid", color="black", weight=3]; 1163 -> 211[label="",style="dashed", color="red", weight=0]; 1163[label="Integer (primNegInt (Neg (Succ vuz38000))) == vuz62",fontsize=16,color="magenta"];1163 -> 1211[label="",style="dashed", color="magenta", weight=3]; 1163 -> 1212[label="",style="dashed", color="magenta", weight=3]; 1164 -> 923[label="",style="dashed", color="red", weight=0]; 1164[label="primNegInt (Neg (Succ vuz38000))",fontsize=16,color="magenta"];1164 -> 1213[label="",style="dashed", color="magenta", weight=3]; 2555 -> 1150[label="",style="dashed", color="red", weight=0]; 2555[label="Integer vuz151 `quot` gcd0Gcd'1 (Integer (Neg (Succ vuz152)) == vuz155) (abs (Integer vuz156)) (Integer (Neg (Succ vuz152)))",fontsize=16,color="magenta"];2555 -> 2603[label="",style="dashed", color="magenta", weight=3]; 2555 -> 2604[label="",style="dashed", color="magenta", weight=3]; 2555 -> 2605[label="",style="dashed", color="magenta", weight=3]; 2555 -> 2606[label="",style="dashed", color="magenta", weight=3]; 1180 -> 1150[label="",style="dashed", color="red", weight=0]; 1180[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (primNegInt (Neg Zero)) == vuz62) (abs (Integer vuz370)) (Integer (primNegInt (Neg Zero)))",fontsize=16,color="magenta"];1180 -> 1221[label="",style="dashed", color="magenta", weight=3]; 1180 -> 1222[label="",style="dashed", color="magenta", weight=3]; 2556[label="vuz1610",fontsize=16,color="green",shape="box"];2557[label="vuz1600",fontsize=16,color="green",shape="box"];2558 -> 772[label="",style="dashed", color="red", weight=0]; 2558[label="primModNatS (primMinusNatS (Succ vuz158) (Succ vuz159)) (Succ (Succ vuz159))",fontsize=16,color="magenta"];2558 -> 2607[label="",style="dashed", color="magenta", weight=3]; 2558 -> 2608[label="",style="dashed", color="magenta", weight=3]; 2559[label="Succ (Succ vuz158)",fontsize=16,color="green",shape="box"];2551[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos (Succ vuz142))) True == vuz145) (abs (Integer vuz146)) (absReal0 (Integer (Pos (Succ vuz142))) True)",fontsize=16,color="black",shape="box"];2551 -> 2560[label="",style="solid", color="black", weight=3]; 1326[label="Integer vuz360 `quot` gcd0Gcd'2 (Integer vuz94) (abs (Integer vuz370) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1326 -> 1368[label="",style="solid", color="black", weight=3]; 1327[label="Integer vuz360 `quot` absReal2 (Integer vuz370)",fontsize=16,color="black",shape="box"];1327 -> 1369[label="",style="solid", color="black", weight=3]; 1210 -> 1150[label="",style="dashed", color="red", weight=0]; 1210[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (primNegInt (Pos Zero)) == vuz62) (abs (Integer vuz370)) (Integer (primNegInt (Pos Zero)))",fontsize=16,color="magenta"];1210 -> 1253[label="",style="dashed", color="magenta", weight=3]; 1210 -> 1254[label="",style="dashed", color="magenta", weight=3]; 1211 -> 923[label="",style="dashed", color="red", weight=0]; 1211[label="primNegInt (Neg (Succ vuz38000))",fontsize=16,color="magenta"];1211 -> 1255[label="",style="dashed", color="magenta", weight=3]; 1212[label="vuz62",fontsize=16,color="green",shape="box"];1213[label="vuz38000",fontsize=16,color="green",shape="box"];2603 -> 211[label="",style="dashed", color="red", weight=0]; 2603[label="Integer (Neg (Succ vuz152)) == vuz155",fontsize=16,color="magenta"];2603 -> 2641[label="",style="dashed", color="magenta", weight=3]; 2603 -> 2642[label="",style="dashed", color="magenta", weight=3]; 2604[label="vuz156",fontsize=16,color="green",shape="box"];2605[label="Neg (Succ vuz152)",fontsize=16,color="green",shape="box"];2606[label="vuz151",fontsize=16,color="green",shape="box"];1221 -> 211[label="",style="dashed", color="red", weight=0]; 1221[label="Integer (primNegInt (Neg Zero)) == vuz62",fontsize=16,color="magenta"];1221 -> 1265[label="",style="dashed", color="magenta", weight=3]; 1221 -> 1266[label="",style="dashed", color="magenta", weight=3]; 1222 -> 963[label="",style="dashed", color="red", weight=0]; 1222[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];2607[label="Succ vuz159",fontsize=16,color="green",shape="box"];2608 -> 1022[label="",style="dashed", color="red", weight=0]; 2608[label="primMinusNatS (Succ vuz158) (Succ vuz159)",fontsize=16,color="magenta"];2608 -> 2643[label="",style="dashed", color="magenta", weight=3]; 2608 -> 2644[label="",style="dashed", color="magenta", weight=3]; 2560[label="Integer vuz141 `quot` gcd0Gcd'1 (`negate` Integer (Pos (Succ vuz142)) == vuz145) (abs (Integer vuz146)) (`negate` Integer (Pos (Succ vuz142)))",fontsize=16,color="black",shape="box"];2560 -> 2609[label="",style="solid", color="black", weight=3]; 1368 -> 1405[label="",style="dashed", color="red", weight=0]; 1368[label="Integer vuz360 `quot` gcd0Gcd'1 (abs (Integer vuz370) `rem` Integer vuz94 == fromInt (Pos Zero)) (Integer vuz94) (abs (Integer vuz370) `rem` Integer vuz94)",fontsize=16,color="magenta"];1368 -> 1406[label="",style="dashed", color="magenta", weight=3]; 1369 -> 1411[label="",style="dashed", color="red", weight=0]; 1369[label="Integer vuz360 `quot` absReal1 (Integer vuz370) (Integer vuz370 >= fromInt (Pos Zero))",fontsize=16,color="magenta"];1369 -> 1412[label="",style="dashed", color="magenta", weight=3]; 1253 -> 211[label="",style="dashed", color="red", weight=0]; 1253[label="Integer (primNegInt (Pos Zero)) == vuz62",fontsize=16,color="magenta"];1253 -> 1335[label="",style="dashed", color="magenta", weight=3]; 1253 -> 1336[label="",style="dashed", color="magenta", weight=3]; 1254 -> 985[label="",style="dashed", color="red", weight=0]; 1254[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];1255[label="vuz38000",fontsize=16,color="green",shape="box"];2641[label="Neg (Succ vuz152)",fontsize=16,color="green",shape="box"];2642[label="vuz155",fontsize=16,color="green",shape="box"];1265 -> 963[label="",style="dashed", color="red", weight=0]; 1265[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];1266[label="vuz62",fontsize=16,color="green",shape="box"];2643[label="Succ vuz158",fontsize=16,color="green",shape="box"];2644[label="Succ vuz159",fontsize=16,color="green",shape="box"];2609 -> 1150[label="",style="dashed", color="red", weight=0]; 2609[label="Integer vuz141 `quot` gcd0Gcd'1 (Integer (primNegInt (Pos (Succ vuz142))) == vuz145) (abs (Integer vuz146)) (Integer (primNegInt (Pos (Succ vuz142))))",fontsize=16,color="magenta"];2609 -> 2645[label="",style="dashed", color="magenta", weight=3]; 2609 -> 2646[label="",style="dashed", color="magenta", weight=3]; 2609 -> 2647[label="",style="dashed", color="magenta", weight=3]; 2609 -> 2648[label="",style="dashed", color="magenta", weight=3]; 1406 -> 12[label="",style="dashed", color="red", weight=0]; 1406[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];1405[label="Integer vuz360 `quot` gcd0Gcd'1 (abs (Integer vuz370) `rem` Integer vuz94 == vuz101) (Integer vuz94) (abs (Integer vuz370) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1405 -> 1414[label="",style="solid", color="black", weight=3]; 1412 -> 12[label="",style="dashed", color="red", weight=0]; 1412[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];1411[label="Integer vuz360 `quot` absReal1 (Integer vuz370) (Integer vuz370 >= vuz102)",fontsize=16,color="black",shape="triangle"];1411 -> 1415[label="",style="solid", color="black", weight=3]; 1335 -> 985[label="",style="dashed", color="red", weight=0]; 1335[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];1336[label="vuz62",fontsize=16,color="green",shape="box"];2645 -> 211[label="",style="dashed", color="red", weight=0]; 2645[label="Integer (primNegInt (Pos (Succ vuz142))) == vuz145",fontsize=16,color="magenta"];2645 -> 2673[label="",style="dashed", color="magenta", weight=3]; 2645 -> 2674[label="",style="dashed", color="magenta", weight=3]; 2646[label="vuz146",fontsize=16,color="green",shape="box"];2647 -> 1701[label="",style="dashed", color="red", weight=0]; 2647[label="primNegInt (Pos (Succ vuz142))",fontsize=16,color="magenta"];2647 -> 2675[label="",style="dashed", color="magenta", weight=3]; 2648[label="vuz141",fontsize=16,color="green",shape="box"];1414[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal (Integer vuz370) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal (Integer vuz370) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1414 -> 1449[label="",style="solid", color="black", weight=3]; 1415[label="Integer vuz360 `quot` absReal1 (Integer vuz370) (compare (Integer vuz370) vuz102 /= LT)",fontsize=16,color="black",shape="box"];1415 -> 1450[label="",style="solid", color="black", weight=3]; 2673 -> 1701[label="",style="dashed", color="red", weight=0]; 2673[label="primNegInt (Pos (Succ vuz142))",fontsize=16,color="magenta"];2673 -> 2703[label="",style="dashed", color="magenta", weight=3]; 2674[label="vuz145",fontsize=16,color="green",shape="box"];2675[label="vuz142",fontsize=16,color="green",shape="box"];1449[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal2 (Integer vuz370) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal2 (Integer vuz370) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1449 -> 1493[label="",style="solid", color="black", weight=3]; 1450[label="Integer vuz360 `quot` absReal1 (Integer vuz370) (not (compare (Integer vuz370) vuz102 == LT))",fontsize=16,color="burlywood",shape="box"];3635[label="vuz102/Integer vuz1020",fontsize=10,color="white",style="solid",shape="box"];1450 -> 3635[label="",style="solid", color="burlywood", weight=9]; 3635 -> 1494[label="",style="solid", color="burlywood", weight=3]; 2703[label="vuz142",fontsize=16,color="green",shape="box"];1493 -> 1524[label="",style="dashed", color="red", weight=0]; 1493[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer vuz370) (Integer vuz370 >= fromInt (Pos Zero)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer vuz370) (Integer vuz370 >= fromInt (Pos Zero)) `rem` Integer vuz94)",fontsize=16,color="magenta"];1493 -> 1525[label="",style="dashed", color="magenta", weight=3]; 1493 -> 1526[label="",style="dashed", color="magenta", weight=3]; 1494[label="Integer vuz360 `quot` absReal1 (Integer vuz370) (not (compare (Integer vuz370) (Integer vuz1020) == LT))",fontsize=16,color="black",shape="box"];1494 -> 1532[label="",style="solid", color="black", weight=3]; 1525 -> 12[label="",style="dashed", color="red", weight=0]; 1525[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];1526 -> 12[label="",style="dashed", color="red", weight=0]; 1526[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];1524[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer vuz370) (Integer vuz370 >= vuz110) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer vuz370) (Integer vuz370 >= vuz109) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1524 -> 1559[label="",style="solid", color="black", weight=3]; 1532[label="Integer vuz360 `quot` absReal1 (Integer vuz370) (not (primCmpInt vuz370 vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3636[label="vuz370/Pos vuz3700",fontsize=10,color="white",style="solid",shape="box"];1532 -> 3636[label="",style="solid", color="burlywood", weight=9]; 3636 -> 1566[label="",style="solid", color="burlywood", weight=3]; 3637[label="vuz370/Neg vuz3700",fontsize=10,color="white",style="solid",shape="box"];1532 -> 3637[label="",style="solid", color="burlywood", weight=9]; 3637 -> 1567[label="",style="solid", color="burlywood", weight=3]; 1559[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer vuz370) (compare (Integer vuz370) vuz110 /= LT) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer vuz370) (compare (Integer vuz370) vuz110 /= LT) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1559 -> 1594[label="",style="solid", color="black", weight=3]; 1566[label="Integer vuz360 `quot` absReal1 (Integer (Pos vuz3700)) (not (primCmpInt (Pos vuz3700) vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3638[label="vuz3700/Succ vuz37000",fontsize=10,color="white",style="solid",shape="box"];1566 -> 3638[label="",style="solid", color="burlywood", weight=9]; 3638 -> 1597[label="",style="solid", color="burlywood", weight=3]; 3639[label="vuz3700/Zero",fontsize=10,color="white",style="solid",shape="box"];1566 -> 3639[label="",style="solid", color="burlywood", weight=9]; 3639 -> 1598[label="",style="solid", color="burlywood", weight=3]; 1567[label="Integer vuz360 `quot` absReal1 (Integer (Neg vuz3700)) (not (primCmpInt (Neg vuz3700) vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3640[label="vuz3700/Succ vuz37000",fontsize=10,color="white",style="solid",shape="box"];1567 -> 3640[label="",style="solid", color="burlywood", weight=9]; 3640 -> 1599[label="",style="solid", color="burlywood", weight=3]; 3641[label="vuz3700/Zero",fontsize=10,color="white",style="solid",shape="box"];1567 -> 3641[label="",style="solid", color="burlywood", weight=9]; 3641 -> 1600[label="",style="solid", color="burlywood", weight=3]; 1594[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer vuz370) (not (compare (Integer vuz370) vuz110 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer vuz370) (not (compare (Integer vuz370) vuz110 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3642[label="vuz110/Integer vuz1100",fontsize=10,color="white",style="solid",shape="box"];1594 -> 3642[label="",style="solid", color="burlywood", weight=9]; 3642 -> 1635[label="",style="solid", color="burlywood", weight=3]; 1597[label="Integer vuz360 `quot` absReal1 (Integer (Pos (Succ vuz37000))) (not (primCmpInt (Pos (Succ vuz37000)) vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3643[label="vuz1020/Pos vuz10200",fontsize=10,color="white",style="solid",shape="box"];1597 -> 3643[label="",style="solid", color="burlywood", weight=9]; 3643 -> 1636[label="",style="solid", color="burlywood", weight=3]; 3644[label="vuz1020/Neg vuz10200",fontsize=10,color="white",style="solid",shape="box"];1597 -> 3644[label="",style="solid", color="burlywood", weight=9]; 3644 -> 1637[label="",style="solid", color="burlywood", weight=3]; 1598[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3645[label="vuz1020/Pos vuz10200",fontsize=10,color="white",style="solid",shape="box"];1598 -> 3645[label="",style="solid", color="burlywood", weight=9]; 3645 -> 1638[label="",style="solid", color="burlywood", weight=3]; 3646[label="vuz1020/Neg vuz10200",fontsize=10,color="white",style="solid",shape="box"];1598 -> 3646[label="",style="solid", color="burlywood", weight=9]; 3646 -> 1639[label="",style="solid", color="burlywood", weight=3]; 1599[label="Integer vuz360 `quot` absReal1 (Integer (Neg (Succ vuz37000))) (not (primCmpInt (Neg (Succ vuz37000)) vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3647[label="vuz1020/Pos vuz10200",fontsize=10,color="white",style="solid",shape="box"];1599 -> 3647[label="",style="solid", color="burlywood", weight=9]; 3647 -> 1640[label="",style="solid", color="burlywood", weight=3]; 3648[label="vuz1020/Neg vuz10200",fontsize=10,color="white",style="solid",shape="box"];1599 -> 3648[label="",style="solid", color="burlywood", weight=9]; 3648 -> 1641[label="",style="solid", color="burlywood", weight=3]; 1600[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3649[label="vuz1020/Pos vuz10200",fontsize=10,color="white",style="solid",shape="box"];1600 -> 3649[label="",style="solid", color="burlywood", weight=9]; 3649 -> 1642[label="",style="solid", color="burlywood", weight=3]; 3650[label="vuz1020/Neg vuz10200",fontsize=10,color="white",style="solid",shape="box"];1600 -> 3650[label="",style="solid", color="burlywood", weight=9]; 3650 -> 1643[label="",style="solid", color="burlywood", weight=3]; 1635[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer vuz370) (not (compare (Integer vuz370) (Integer vuz1100) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer vuz370) (not (compare (Integer vuz370) (Integer vuz1100) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1635 -> 1671[label="",style="solid", color="black", weight=3]; 1636[label="Integer vuz360 `quot` absReal1 (Integer (Pos (Succ vuz37000))) (not (primCmpInt (Pos (Succ vuz37000)) (Pos vuz10200) == LT))",fontsize=16,color="black",shape="box"];1636 -> 1672[label="",style="solid", color="black", weight=3]; 1637[label="Integer vuz360 `quot` absReal1 (Integer (Pos (Succ vuz37000))) (not (primCmpInt (Pos (Succ vuz37000)) (Neg vuz10200) == LT))",fontsize=16,color="black",shape="box"];1637 -> 1673[label="",style="solid", color="black", weight=3]; 1638[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz10200) == LT))",fontsize=16,color="burlywood",shape="box"];3651[label="vuz10200/Succ vuz102000",fontsize=10,color="white",style="solid",shape="box"];1638 -> 3651[label="",style="solid", color="burlywood", weight=9]; 3651 -> 1674[label="",style="solid", color="burlywood", weight=3]; 3652[label="vuz10200/Zero",fontsize=10,color="white",style="solid",shape="box"];1638 -> 3652[label="",style="solid", color="burlywood", weight=9]; 3652 -> 1675[label="",style="solid", color="burlywood", weight=3]; 1639[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz10200) == LT))",fontsize=16,color="burlywood",shape="box"];3653[label="vuz10200/Succ vuz102000",fontsize=10,color="white",style="solid",shape="box"];1639 -> 3653[label="",style="solid", color="burlywood", weight=9]; 3653 -> 1676[label="",style="solid", color="burlywood", weight=3]; 3654[label="vuz10200/Zero",fontsize=10,color="white",style="solid",shape="box"];1639 -> 3654[label="",style="solid", color="burlywood", weight=9]; 3654 -> 1677[label="",style="solid", color="burlywood", weight=3]; 1640[label="Integer vuz360 `quot` absReal1 (Integer (Neg (Succ vuz37000))) (not (primCmpInt (Neg (Succ vuz37000)) (Pos vuz10200) == LT))",fontsize=16,color="black",shape="box"];1640 -> 1678[label="",style="solid", color="black", weight=3]; 1641[label="Integer vuz360 `quot` absReal1 (Integer (Neg (Succ vuz37000))) (not (primCmpInt (Neg (Succ vuz37000)) (Neg vuz10200) == LT))",fontsize=16,color="black",shape="box"];1641 -> 1679[label="",style="solid", color="black", weight=3]; 1642[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz10200) == LT))",fontsize=16,color="burlywood",shape="box"];3655[label="vuz10200/Succ vuz102000",fontsize=10,color="white",style="solid",shape="box"];1642 -> 3655[label="",style="solid", color="burlywood", weight=9]; 3655 -> 1680[label="",style="solid", color="burlywood", weight=3]; 3656[label="vuz10200/Zero",fontsize=10,color="white",style="solid",shape="box"];1642 -> 3656[label="",style="solid", color="burlywood", weight=9]; 3656 -> 1681[label="",style="solid", color="burlywood", weight=3]; 1643[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz10200) == LT))",fontsize=16,color="burlywood",shape="box"];3657[label="vuz10200/Succ vuz102000",fontsize=10,color="white",style="solid",shape="box"];1643 -> 3657[label="",style="solid", color="burlywood", weight=9]; 3657 -> 1682[label="",style="solid", color="burlywood", weight=3]; 3658[label="vuz10200/Zero",fontsize=10,color="white",style="solid",shape="box"];1643 -> 3658[label="",style="solid", color="burlywood", weight=9]; 3658 -> 1683[label="",style="solid", color="burlywood", weight=3]; 1671[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer vuz370) (not (primCmpInt vuz370 vuz1100 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer vuz370) (not (primCmpInt vuz370 vuz1100 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3659[label="vuz370/Pos vuz3700",fontsize=10,color="white",style="solid",shape="box"];1671 -> 3659[label="",style="solid", color="burlywood", weight=9]; 3659 -> 1715[label="",style="solid", color="burlywood", weight=3]; 3660[label="vuz370/Neg vuz3700",fontsize=10,color="white",style="solid",shape="box"];1671 -> 3660[label="",style="solid", color="burlywood", weight=9]; 3660 -> 1716[label="",style="solid", color="burlywood", weight=3]; 1672 -> 3027[label="",style="dashed", color="red", weight=0]; 1672[label="Integer vuz360 `quot` absReal1 (Integer (Pos (Succ vuz37000))) (not (primCmpNat (Succ vuz37000) vuz10200 == LT))",fontsize=16,color="magenta"];1672 -> 3028[label="",style="dashed", color="magenta", weight=3]; 1672 -> 3029[label="",style="dashed", color="magenta", weight=3]; 1672 -> 3030[label="",style="dashed", color="magenta", weight=3]; 1672 -> 3031[label="",style="dashed", color="magenta", weight=3]; 1673[label="Integer vuz360 `quot` absReal1 (Integer (Pos (Succ vuz37000))) (not (GT == LT))",fontsize=16,color="black",shape="triangle"];1673 -> 1719[label="",style="solid", color="black", weight=3]; 1674[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz102000)) == LT))",fontsize=16,color="black",shape="box"];1674 -> 1720[label="",style="solid", color="black", weight=3]; 1675[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];1675 -> 1721[label="",style="solid", color="black", weight=3]; 1676[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz102000)) == LT))",fontsize=16,color="black",shape="box"];1676 -> 1722[label="",style="solid", color="black", weight=3]; 1677[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))",fontsize=16,color="black",shape="box"];1677 -> 1723[label="",style="solid", color="black", weight=3]; 1678[label="Integer vuz360 `quot` absReal1 (Integer (Neg (Succ vuz37000))) (not (LT == LT))",fontsize=16,color="black",shape="triangle"];1678 -> 1724[label="",style="solid", color="black", weight=3]; 1679 -> 3072[label="",style="dashed", color="red", weight=0]; 1679[label="Integer vuz360 `quot` absReal1 (Integer (Neg (Succ vuz37000))) (not (primCmpNat vuz10200 (Succ vuz37000) == LT))",fontsize=16,color="magenta"];1679 -> 3073[label="",style="dashed", color="magenta", weight=3]; 1679 -> 3074[label="",style="dashed", color="magenta", weight=3]; 1679 -> 3075[label="",style="dashed", color="magenta", weight=3]; 1679 -> 3076[label="",style="dashed", color="magenta", weight=3]; 1680[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz102000)) == LT))",fontsize=16,color="black",shape="box"];1680 -> 1727[label="",style="solid", color="black", weight=3]; 1681[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];1681 -> 1728[label="",style="solid", color="black", weight=3]; 1682[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz102000)) == LT))",fontsize=16,color="black",shape="box"];1682 -> 1729[label="",style="solid", color="black", weight=3]; 1683[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))",fontsize=16,color="black",shape="box"];1683 -> 1730[label="",style="solid", color="black", weight=3]; 1715[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos vuz3700)) (not (primCmpInt (Pos vuz3700) vuz1100 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos vuz3700)) (not (primCmpInt (Pos vuz3700) vuz1100 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3661[label="vuz3700/Succ vuz37000",fontsize=10,color="white",style="solid",shape="box"];1715 -> 3661[label="",style="solid", color="burlywood", weight=9]; 3661 -> 1756[label="",style="solid", color="burlywood", weight=3]; 3662[label="vuz3700/Zero",fontsize=10,color="white",style="solid",shape="box"];1715 -> 3662[label="",style="solid", color="burlywood", weight=9]; 3662 -> 1757[label="",style="solid", color="burlywood", weight=3]; 1716[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg vuz3700)) (not (primCmpInt (Neg vuz3700) vuz1100 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg vuz3700)) (not (primCmpInt (Neg vuz3700) vuz1100 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3663[label="vuz3700/Succ vuz37000",fontsize=10,color="white",style="solid",shape="box"];1716 -> 3663[label="",style="solid", color="burlywood", weight=9]; 3663 -> 1758[label="",style="solid", color="burlywood", weight=3]; 3664[label="vuz3700/Zero",fontsize=10,color="white",style="solid",shape="box"];1716 -> 3664[label="",style="solid", color="burlywood", weight=9]; 3664 -> 1759[label="",style="solid", color="burlywood", weight=3]; 3028[label="vuz37000",fontsize=16,color="green",shape="box"];3029[label="vuz10200",fontsize=16,color="green",shape="box"];3030[label="vuz360",fontsize=16,color="green",shape="box"];3031[label="Succ vuz37000",fontsize=16,color="green",shape="box"];3027[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not (primCmpNat vuz179 vuz180 == LT))",fontsize=16,color="burlywood",shape="triangle"];3665[label="vuz179/Succ vuz1790",fontsize=10,color="white",style="solid",shape="box"];3027 -> 3665[label="",style="solid", color="burlywood", weight=9]; 3665 -> 3068[label="",style="solid", color="burlywood", weight=3]; 3666[label="vuz179/Zero",fontsize=10,color="white",style="solid",shape="box"];3027 -> 3666[label="",style="solid", color="burlywood", weight=9]; 3666 -> 3069[label="",style="solid", color="burlywood", weight=3]; 1719[label="Integer vuz360 `quot` absReal1 (Integer (Pos (Succ vuz37000))) (not False)",fontsize=16,color="black",shape="triangle"];1719 -> 1762[label="",style="solid", color="black", weight=3]; 1720[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz102000) == LT))",fontsize=16,color="black",shape="box"];1720 -> 1763[label="",style="solid", color="black", weight=3]; 1721[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="triangle"];1721 -> 1764[label="",style="solid", color="black", weight=3]; 1722[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not (GT == LT))",fontsize=16,color="black",shape="box"];1722 -> 1765[label="",style="solid", color="black", weight=3]; 1723 -> 1721[label="",style="dashed", color="red", weight=0]; 1723[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not (EQ == LT))",fontsize=16,color="magenta"];1724[label="Integer vuz360 `quot` absReal1 (Integer (Neg (Succ vuz37000))) (not True)",fontsize=16,color="black",shape="box"];1724 -> 1766[label="",style="solid", color="black", weight=3]; 3073[label="vuz360",fontsize=16,color="green",shape="box"];3074[label="vuz10200",fontsize=16,color="green",shape="box"];3075[label="Succ vuz37000",fontsize=16,color="green",shape="box"];3076[label="vuz37000",fontsize=16,color="green",shape="box"];3072[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not (primCmpNat vuz184 vuz185 == LT))",fontsize=16,color="burlywood",shape="triangle"];3667[label="vuz184/Succ vuz1840",fontsize=10,color="white",style="solid",shape="box"];3072 -> 3667[label="",style="solid", color="burlywood", weight=9]; 3667 -> 3113[label="",style="solid", color="burlywood", weight=3]; 3668[label="vuz184/Zero",fontsize=10,color="white",style="solid",shape="box"];3072 -> 3668[label="",style="solid", color="burlywood", weight=9]; 3668 -> 3114[label="",style="solid", color="burlywood", weight=3]; 1727[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not (LT == LT))",fontsize=16,color="black",shape="box"];1727 -> 1769[label="",style="solid", color="black", weight=3]; 1728[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="triangle"];1728 -> 1770[label="",style="solid", color="black", weight=3]; 1729[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz102000) Zero == LT))",fontsize=16,color="black",shape="box"];1729 -> 1771[label="",style="solid", color="black", weight=3]; 1730 -> 1728[label="",style="dashed", color="red", weight=0]; 1730[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not (EQ == LT))",fontsize=16,color="magenta"];1756[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz37000))) (not (primCmpInt (Pos (Succ vuz37000)) vuz1100 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz37000))) (not (primCmpInt (Pos (Succ vuz37000)) vuz1100 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3669[label="vuz1100/Pos vuz11000",fontsize=10,color="white",style="solid",shape="box"];1756 -> 3669[label="",style="solid", color="burlywood", weight=9]; 3669 -> 1795[label="",style="solid", color="burlywood", weight=3]; 3670[label="vuz1100/Neg vuz11000",fontsize=10,color="white",style="solid",shape="box"];1756 -> 3670[label="",style="solid", color="burlywood", weight=9]; 3670 -> 1796[label="",style="solid", color="burlywood", weight=3]; 1757[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1100 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1100 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3671[label="vuz1100/Pos vuz11000",fontsize=10,color="white",style="solid",shape="box"];1757 -> 3671[label="",style="solid", color="burlywood", weight=9]; 3671 -> 1797[label="",style="solid", color="burlywood", weight=3]; 3672[label="vuz1100/Neg vuz11000",fontsize=10,color="white",style="solid",shape="box"];1757 -> 3672[label="",style="solid", color="burlywood", weight=9]; 3672 -> 1798[label="",style="solid", color="burlywood", weight=3]; 1758[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz37000))) (not (primCmpInt (Neg (Succ vuz37000)) vuz1100 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz37000))) (not (primCmpInt (Neg (Succ vuz37000)) vuz1100 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3673[label="vuz1100/Pos vuz11000",fontsize=10,color="white",style="solid",shape="box"];1758 -> 3673[label="",style="solid", color="burlywood", weight=9]; 3673 -> 1799[label="",style="solid", color="burlywood", weight=3]; 3674[label="vuz1100/Neg vuz11000",fontsize=10,color="white",style="solid",shape="box"];1758 -> 3674[label="",style="solid", color="burlywood", weight=9]; 3674 -> 1800[label="",style="solid", color="burlywood", weight=3]; 1759[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1100 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1100 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3675[label="vuz1100/Pos vuz11000",fontsize=10,color="white",style="solid",shape="box"];1759 -> 3675[label="",style="solid", color="burlywood", weight=9]; 3675 -> 1801[label="",style="solid", color="burlywood", weight=3]; 3676[label="vuz1100/Neg vuz11000",fontsize=10,color="white",style="solid",shape="box"];1759 -> 3676[label="",style="solid", color="burlywood", weight=9]; 3676 -> 1802[label="",style="solid", color="burlywood", weight=3]; 3068[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not (primCmpNat (Succ vuz1790) vuz180 == LT))",fontsize=16,color="burlywood",shape="box"];3677[label="vuz180/Succ vuz1800",fontsize=10,color="white",style="solid",shape="box"];3068 -> 3677[label="",style="solid", color="burlywood", weight=9]; 3677 -> 3115[label="",style="solid", color="burlywood", weight=3]; 3678[label="vuz180/Zero",fontsize=10,color="white",style="solid",shape="box"];3068 -> 3678[label="",style="solid", color="burlywood", weight=9]; 3678 -> 3116[label="",style="solid", color="burlywood", weight=3]; 3069[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not (primCmpNat Zero vuz180 == LT))",fontsize=16,color="burlywood",shape="box"];3679[label="vuz180/Succ vuz1800",fontsize=10,color="white",style="solid",shape="box"];3069 -> 3679[label="",style="solid", color="burlywood", weight=9]; 3679 -> 3117[label="",style="solid", color="burlywood", weight=3]; 3680[label="vuz180/Zero",fontsize=10,color="white",style="solid",shape="box"];3069 -> 3680[label="",style="solid", color="burlywood", weight=9]; 3680 -> 3118[label="",style="solid", color="burlywood", weight=3]; 1762[label="Integer vuz360 `quot` absReal1 (Integer (Pos (Succ vuz37000))) True",fontsize=16,color="black",shape="box"];1762 -> 1805[label="",style="solid", color="black", weight=3]; 1763[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not (LT == LT))",fontsize=16,color="black",shape="box"];1763 -> 1806[label="",style="solid", color="black", weight=3]; 1764[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not False)",fontsize=16,color="black",shape="triangle"];1764 -> 1807[label="",style="solid", color="black", weight=3]; 1765 -> 1764[label="",style="dashed", color="red", weight=0]; 1765[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not False)",fontsize=16,color="magenta"];1766[label="Integer vuz360 `quot` absReal1 (Integer (Neg (Succ vuz37000))) False",fontsize=16,color="black",shape="box"];1766 -> 1808[label="",style="solid", color="black", weight=3]; 3113[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not (primCmpNat (Succ vuz1840) vuz185 == LT))",fontsize=16,color="burlywood",shape="box"];3681[label="vuz185/Succ vuz1850",fontsize=10,color="white",style="solid",shape="box"];3113 -> 3681[label="",style="solid", color="burlywood", weight=9]; 3681 -> 3134[label="",style="solid", color="burlywood", weight=3]; 3682[label="vuz185/Zero",fontsize=10,color="white",style="solid",shape="box"];3113 -> 3682[label="",style="solid", color="burlywood", weight=9]; 3682 -> 3135[label="",style="solid", color="burlywood", weight=3]; 3114[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not (primCmpNat Zero vuz185 == LT))",fontsize=16,color="burlywood",shape="box"];3683[label="vuz185/Succ vuz1850",fontsize=10,color="white",style="solid",shape="box"];3114 -> 3683[label="",style="solid", color="burlywood", weight=9]; 3683 -> 3136[label="",style="solid", color="burlywood", weight=3]; 3684[label="vuz185/Zero",fontsize=10,color="white",style="solid",shape="box"];3114 -> 3684[label="",style="solid", color="burlywood", weight=9]; 3684 -> 3137[label="",style="solid", color="burlywood", weight=3]; 1769[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not True)",fontsize=16,color="black",shape="box"];1769 -> 1811[label="",style="solid", color="black", weight=3]; 1770[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not False)",fontsize=16,color="black",shape="triangle"];1770 -> 1812[label="",style="solid", color="black", weight=3]; 1771[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not (GT == LT))",fontsize=16,color="black",shape="box"];1771 -> 1813[label="",style="solid", color="black", weight=3]; 1795[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz37000))) (not (primCmpInt (Pos (Succ vuz37000)) (Pos vuz11000) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz37000))) (not (primCmpInt (Pos (Succ vuz37000)) (Pos vuz11000) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1795 -> 1849[label="",style="solid", color="black", weight=3]; 1796[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz37000))) (not (primCmpInt (Pos (Succ vuz37000)) (Neg vuz11000) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz37000))) (not (primCmpInt (Pos (Succ vuz37000)) (Neg vuz11000) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1796 -> 1850[label="",style="solid", color="black", weight=3]; 1797[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz11000) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz11000) == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3685[label="vuz11000/Succ vuz110000",fontsize=10,color="white",style="solid",shape="box"];1797 -> 3685[label="",style="solid", color="burlywood", weight=9]; 3685 -> 1851[label="",style="solid", color="burlywood", weight=3]; 3686[label="vuz11000/Zero",fontsize=10,color="white",style="solid",shape="box"];1797 -> 3686[label="",style="solid", color="burlywood", weight=9]; 3686 -> 1852[label="",style="solid", color="burlywood", weight=3]; 1798[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz11000) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz11000) == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3687[label="vuz11000/Succ vuz110000",fontsize=10,color="white",style="solid",shape="box"];1798 -> 3687[label="",style="solid", color="burlywood", weight=9]; 3687 -> 1853[label="",style="solid", color="burlywood", weight=3]; 3688[label="vuz11000/Zero",fontsize=10,color="white",style="solid",shape="box"];1798 -> 3688[label="",style="solid", color="burlywood", weight=9]; 3688 -> 1854[label="",style="solid", color="burlywood", weight=3]; 1799[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz37000))) (not (primCmpInt (Neg (Succ vuz37000)) (Pos vuz11000) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz37000))) (not (primCmpInt (Neg (Succ vuz37000)) (Pos vuz11000) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1799 -> 1855[label="",style="solid", color="black", weight=3]; 1800[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz37000))) (not (primCmpInt (Neg (Succ vuz37000)) (Neg vuz11000) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz37000))) (not (primCmpInt (Neg (Succ vuz37000)) (Neg vuz11000) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1800 -> 1856[label="",style="solid", color="black", weight=3]; 1801[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz11000) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz11000) == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3689[label="vuz11000/Succ vuz110000",fontsize=10,color="white",style="solid",shape="box"];1801 -> 3689[label="",style="solid", color="burlywood", weight=9]; 3689 -> 1857[label="",style="solid", color="burlywood", weight=3]; 3690[label="vuz11000/Zero",fontsize=10,color="white",style="solid",shape="box"];1801 -> 3690[label="",style="solid", color="burlywood", weight=9]; 3690 -> 1858[label="",style="solid", color="burlywood", weight=3]; 1802[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz11000) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz11000) == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3691[label="vuz11000/Succ vuz110000",fontsize=10,color="white",style="solid",shape="box"];1802 -> 3691[label="",style="solid", color="burlywood", weight=9]; 3691 -> 1859[label="",style="solid", color="burlywood", weight=3]; 3692[label="vuz11000/Zero",fontsize=10,color="white",style="solid",shape="box"];1802 -> 3692[label="",style="solid", color="burlywood", weight=9]; 3692 -> 1860[label="",style="solid", color="burlywood", weight=3]; 3115[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not (primCmpNat (Succ vuz1790) (Succ vuz1800) == LT))",fontsize=16,color="black",shape="box"];3115 -> 3138[label="",style="solid", color="black", weight=3]; 3116[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not (primCmpNat (Succ vuz1790) Zero == LT))",fontsize=16,color="black",shape="box"];3116 -> 3139[label="",style="solid", color="black", weight=3]; 3117[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not (primCmpNat Zero (Succ vuz1800) == LT))",fontsize=16,color="black",shape="box"];3117 -> 3140[label="",style="solid", color="black", weight=3]; 3118[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];3118 -> 3141[label="",style="solid", color="black", weight=3]; 1805 -> 2082[label="",style="dashed", color="red", weight=0]; 1805[label="Integer vuz360 `quot` Integer (Pos (Succ vuz37000))",fontsize=16,color="magenta"];1805 -> 2083[label="",style="dashed", color="magenta", weight=3]; 1806[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not True)",fontsize=16,color="black",shape="box"];1806 -> 1866[label="",style="solid", color="black", weight=3]; 1807[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];1807 -> 1867[label="",style="solid", color="black", weight=3]; 1808[label="Integer vuz360 `quot` absReal0 (Integer (Neg (Succ vuz37000))) otherwise",fontsize=16,color="black",shape="box"];1808 -> 1868[label="",style="solid", color="black", weight=3]; 3134[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not (primCmpNat (Succ vuz1840) (Succ vuz1850) == LT))",fontsize=16,color="black",shape="box"];3134 -> 3156[label="",style="solid", color="black", weight=3]; 3135[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not (primCmpNat (Succ vuz1840) Zero == LT))",fontsize=16,color="black",shape="box"];3135 -> 3157[label="",style="solid", color="black", weight=3]; 3136[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not (primCmpNat Zero (Succ vuz1850) == LT))",fontsize=16,color="black",shape="box"];3136 -> 3158[label="",style="solid", color="black", weight=3]; 3137[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];3137 -> 3159[label="",style="solid", color="black", weight=3]; 1811[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) False",fontsize=16,color="black",shape="box"];1811 -> 1873[label="",style="solid", color="black", weight=3]; 1812[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];1812 -> 1874[label="",style="solid", color="black", weight=3]; 1813 -> 1770[label="",style="dashed", color="red", weight=0]; 1813[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not False)",fontsize=16,color="magenta"];1849 -> 3186[label="",style="dashed", color="red", weight=0]; 1849[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz37000))) (not (primCmpNat (Succ vuz37000) vuz11000 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz37000))) (not (primCmpNat (Succ vuz37000) vuz11000 == LT)) `rem` Integer vuz94)",fontsize=16,color="magenta"];1849 -> 3187[label="",style="dashed", color="magenta", weight=3]; 1849 -> 3188[label="",style="dashed", color="magenta", weight=3]; 1849 -> 3189[label="",style="dashed", color="magenta", weight=3]; 1849 -> 3190[label="",style="dashed", color="magenta", weight=3]; 1849 -> 3191[label="",style="dashed", color="magenta", weight=3]; 1849 -> 3192[label="",style="dashed", color="magenta", weight=3]; 1850[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz37000))) (not (GT == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz37000))) (not (GT == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1850 -> 1950[label="",style="solid", color="black", weight=3]; 1851[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz110000)) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz110000)) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1851 -> 1951[label="",style="solid", color="black", weight=3]; 1852[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1852 -> 1952[label="",style="solid", color="black", weight=3]; 1853[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz110000)) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz110000)) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1853 -> 1953[label="",style="solid", color="black", weight=3]; 1854[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1854 -> 1954[label="",style="solid", color="black", weight=3]; 1855[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz37000))) (not (LT == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz37000))) (not (LT == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1855 -> 1955[label="",style="solid", color="black", weight=3]; 1856 -> 3251[label="",style="dashed", color="red", weight=0]; 1856[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz37000))) (not (primCmpNat vuz11000 (Succ vuz37000) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz37000))) (not (primCmpNat vuz11000 (Succ vuz37000) == LT)) `rem` Integer vuz94)",fontsize=16,color="magenta"];1856 -> 3252[label="",style="dashed", color="magenta", weight=3]; 1856 -> 3253[label="",style="dashed", color="magenta", weight=3]; 1856 -> 3254[label="",style="dashed", color="magenta", weight=3]; 1856 -> 3255[label="",style="dashed", color="magenta", weight=3]; 1856 -> 3256[label="",style="dashed", color="magenta", weight=3]; 1856 -> 3257[label="",style="dashed", color="magenta", weight=3]; 1857[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz110000)) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz110000)) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1857 -> 1958[label="",style="solid", color="black", weight=3]; 1858[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1858 -> 1959[label="",style="solid", color="black", weight=3]; 1859[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz110000)) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz110000)) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1859 -> 1960[label="",style="solid", color="black", weight=3]; 1860[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1860 -> 1961[label="",style="solid", color="black", weight=3]; 3138 -> 3027[label="",style="dashed", color="red", weight=0]; 3138[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not (primCmpNat vuz1790 vuz1800 == LT))",fontsize=16,color="magenta"];3138 -> 3160[label="",style="dashed", color="magenta", weight=3]; 3138 -> 3161[label="",style="dashed", color="magenta", weight=3]; 3139 -> 1673[label="",style="dashed", color="red", weight=0]; 3139[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not (GT == LT))",fontsize=16,color="magenta"];3139 -> 3162[label="",style="dashed", color="magenta", weight=3]; 3139 -> 3163[label="",style="dashed", color="magenta", weight=3]; 3140[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not (LT == LT))",fontsize=16,color="black",shape="box"];3140 -> 3164[label="",style="solid", color="black", weight=3]; 3141[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not (EQ == LT))",fontsize=16,color="black",shape="box"];3141 -> 3165[label="",style="solid", color="black", weight=3]; 2083[label="Pos (Succ vuz37000)",fontsize=16,color="green",shape="box"];2082[label="Integer vuz360 `quot` Integer vuz136",fontsize=16,color="black",shape="triangle"];2082 -> 2088[label="",style="solid", color="black", weight=3]; 1866[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) False",fontsize=16,color="black",shape="box"];1866 -> 1967[label="",style="solid", color="black", weight=3]; 1867 -> 2082[label="",style="dashed", color="red", weight=0]; 1867[label="Integer vuz360 `quot` Integer (Pos Zero)",fontsize=16,color="magenta"];1867 -> 2084[label="",style="dashed", color="magenta", weight=3]; 1868[label="Integer vuz360 `quot` absReal0 (Integer (Neg (Succ vuz37000))) True",fontsize=16,color="black",shape="box"];1868 -> 1969[label="",style="solid", color="black", weight=3]; 3156 -> 3072[label="",style="dashed", color="red", weight=0]; 3156[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not (primCmpNat vuz1840 vuz1850 == LT))",fontsize=16,color="magenta"];3156 -> 3177[label="",style="dashed", color="magenta", weight=3]; 3156 -> 3178[label="",style="dashed", color="magenta", weight=3]; 3157[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not (GT == LT))",fontsize=16,color="black",shape="box"];3157 -> 3179[label="",style="solid", color="black", weight=3]; 3158 -> 1678[label="",style="dashed", color="red", weight=0]; 3158[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not (LT == LT))",fontsize=16,color="magenta"];3158 -> 3180[label="",style="dashed", color="magenta", weight=3]; 3158 -> 3181[label="",style="dashed", color="magenta", weight=3]; 3159[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not (EQ == LT))",fontsize=16,color="black",shape="box"];3159 -> 3182[label="",style="solid", color="black", weight=3]; 1873[label="Integer vuz360 `quot` absReal0 (Integer (Neg Zero)) otherwise",fontsize=16,color="black",shape="box"];1873 -> 1974[label="",style="solid", color="black", weight=3]; 1874 -> 2082[label="",style="dashed", color="red", weight=0]; 1874[label="Integer vuz360 `quot` Integer (Neg Zero)",fontsize=16,color="magenta"];1874 -> 2085[label="",style="dashed", color="magenta", weight=3]; 3187[label="vuz360",fontsize=16,color="green",shape="box"];3188[label="vuz37000",fontsize=16,color="green",shape="box"];3189[label="vuz11000",fontsize=16,color="green",shape="box"];3190[label="Succ vuz37000",fontsize=16,color="green",shape="box"];3191[label="vuz94",fontsize=16,color="green",shape="box"];3192[label="vuz101",fontsize=16,color="green",shape="box"];3186[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat vuz189 vuz190 == LT)) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat vuz189 vuz190 == LT)) `rem` Integer vuz191)",fontsize=16,color="burlywood",shape="triangle"];3693[label="vuz189/Succ vuz1890",fontsize=10,color="white",style="solid",shape="box"];3186 -> 3693[label="",style="solid", color="burlywood", weight=9]; 3693 -> 3247[label="",style="solid", color="burlywood", weight=3]; 3694[label="vuz189/Zero",fontsize=10,color="white",style="solid",shape="box"];3186 -> 3694[label="",style="solid", color="burlywood", weight=9]; 3694 -> 3248[label="",style="solid", color="burlywood", weight=3]; 1950[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz37000))) (not False) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz37000))) (not False) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1950 -> 2003[label="",style="solid", color="black", weight=3]; 1951[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz110000) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz110000) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1951 -> 2004[label="",style="solid", color="black", weight=3]; 1952[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1952 -> 2005[label="",style="solid", color="black", weight=3]; 1953[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (GT == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (GT == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1953 -> 2006[label="",style="solid", color="black", weight=3]; 1954 -> 1952[label="",style="dashed", color="red", weight=0]; 1954[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz94)",fontsize=16,color="magenta"];1955[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz37000))) (not True) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz37000))) (not True) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1955 -> 2007[label="",style="solid", color="black", weight=3]; 3252[label="vuz360",fontsize=16,color="green",shape="box"];3253[label="vuz11000",fontsize=16,color="green",shape="box"];3254[label="Succ vuz37000",fontsize=16,color="green",shape="box"];3255[label="vuz101",fontsize=16,color="green",shape="box"];3256[label="vuz94",fontsize=16,color="green",shape="box"];3257[label="vuz37000",fontsize=16,color="green",shape="box"];3251[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat vuz196 vuz197 == LT)) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat vuz196 vuz197 == LT)) `rem` Integer vuz198)",fontsize=16,color="burlywood",shape="triangle"];3695[label="vuz196/Succ vuz1960",fontsize=10,color="white",style="solid",shape="box"];3251 -> 3695[label="",style="solid", color="burlywood", weight=9]; 3695 -> 3312[label="",style="solid", color="burlywood", weight=3]; 3696[label="vuz196/Zero",fontsize=10,color="white",style="solid",shape="box"];3251 -> 3696[label="",style="solid", color="burlywood", weight=9]; 3696 -> 3313[label="",style="solid", color="burlywood", weight=3]; 1958[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (LT == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (LT == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1958 -> 2010[label="",style="solid", color="black", weight=3]; 1959[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1959 -> 2011[label="",style="solid", color="black", weight=3]; 1960[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz110000) Zero == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz110000) Zero == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1960 -> 2012[label="",style="solid", color="black", weight=3]; 1961 -> 1959[label="",style="dashed", color="red", weight=0]; 1961[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz94)",fontsize=16,color="magenta"];3160[label="vuz1800",fontsize=16,color="green",shape="box"];3161[label="vuz1790",fontsize=16,color="green",shape="box"];3162[label="vuz178",fontsize=16,color="green",shape="box"];3163[label="vuz177",fontsize=16,color="green",shape="box"];3164[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not True)",fontsize=16,color="black",shape="box"];3164 -> 3183[label="",style="solid", color="black", weight=3]; 3165 -> 1719[label="",style="dashed", color="red", weight=0]; 3165[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not False)",fontsize=16,color="magenta"];3165 -> 3184[label="",style="dashed", color="magenta", weight=3]; 3165 -> 3185[label="",style="dashed", color="magenta", weight=3]; 2088[label="Integer (primQuotInt vuz360 vuz136)",fontsize=16,color="green",shape="box"];2088 -> 2141[label="",style="dashed", color="green", weight=3]; 1967[label="Integer vuz360 `quot` absReal0 (Integer (Pos Zero)) otherwise",fontsize=16,color="black",shape="box"];1967 -> 2020[label="",style="solid", color="black", weight=3]; 2084[label="Pos Zero",fontsize=16,color="green",shape="box"];1969[label="Integer vuz360 `quot` (`negate` Integer (Neg (Succ vuz37000)))",fontsize=16,color="black",shape="box"];1969 -> 2022[label="",style="solid", color="black", weight=3]; 3177[label="vuz1840",fontsize=16,color="green",shape="box"];3178[label="vuz1850",fontsize=16,color="green",shape="box"];3179[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not False)",fontsize=16,color="black",shape="triangle"];3179 -> 3249[label="",style="solid", color="black", weight=3]; 3180[label="vuz182",fontsize=16,color="green",shape="box"];3181[label="vuz183",fontsize=16,color="green",shape="box"];3182 -> 3179[label="",style="dashed", color="red", weight=0]; 3182[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not False)",fontsize=16,color="magenta"];1974[label="Integer vuz360 `quot` absReal0 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];1974 -> 2028[label="",style="solid", color="black", weight=3]; 2085[label="Neg Zero",fontsize=16,color="green",shape="box"];3247[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat (Succ vuz1890) vuz190 == LT)) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat (Succ vuz1890) vuz190 == LT)) `rem` Integer vuz191)",fontsize=16,color="burlywood",shape="box"];3697[label="vuz190/Succ vuz1900",fontsize=10,color="white",style="solid",shape="box"];3247 -> 3697[label="",style="solid", color="burlywood", weight=9]; 3697 -> 3314[label="",style="solid", color="burlywood", weight=3]; 3698[label="vuz190/Zero",fontsize=10,color="white",style="solid",shape="box"];3247 -> 3698[label="",style="solid", color="burlywood", weight=9]; 3698 -> 3315[label="",style="solid", color="burlywood", weight=3]; 3248[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat Zero vuz190 == LT)) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat Zero vuz190 == LT)) `rem` Integer vuz191)",fontsize=16,color="burlywood",shape="box"];3699[label="vuz190/Succ vuz1900",fontsize=10,color="white",style="solid",shape="box"];3248 -> 3699[label="",style="solid", color="burlywood", weight=9]; 3699 -> 3316[label="",style="solid", color="burlywood", weight=3]; 3700[label="vuz190/Zero",fontsize=10,color="white",style="solid",shape="box"];3248 -> 3700[label="",style="solid", color="burlywood", weight=9]; 3700 -> 3317[label="",style="solid", color="burlywood", weight=3]; 2003[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz37000))) True `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz37000))) True `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2003 -> 2062[label="",style="solid", color="black", weight=3]; 2004[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (LT == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (LT == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2004 -> 2063[label="",style="solid", color="black", weight=3]; 2005[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];2005 -> 2064[label="",style="solid", color="black", weight=3]; 2006 -> 2005[label="",style="dashed", color="red", weight=0]; 2006[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz94)",fontsize=16,color="magenta"];2007[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz37000))) False `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz37000))) False `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2007 -> 2065[label="",style="solid", color="black", weight=3]; 3312[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat (Succ vuz1960) vuz197 == LT)) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat (Succ vuz1960) vuz197 == LT)) `rem` Integer vuz198)",fontsize=16,color="burlywood",shape="box"];3701[label="vuz197/Succ vuz1970",fontsize=10,color="white",style="solid",shape="box"];3312 -> 3701[label="",style="solid", color="burlywood", weight=9]; 3701 -> 3320[label="",style="solid", color="burlywood", weight=3]; 3702[label="vuz197/Zero",fontsize=10,color="white",style="solid",shape="box"];3312 -> 3702[label="",style="solid", color="burlywood", weight=9]; 3702 -> 3321[label="",style="solid", color="burlywood", weight=3]; 3313[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat Zero vuz197 == LT)) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat Zero vuz197 == LT)) `rem` Integer vuz198)",fontsize=16,color="burlywood",shape="box"];3703[label="vuz197/Succ vuz1970",fontsize=10,color="white",style="solid",shape="box"];3313 -> 3703[label="",style="solid", color="burlywood", weight=9]; 3703 -> 3322[label="",style="solid", color="burlywood", weight=3]; 3704[label="vuz197/Zero",fontsize=10,color="white",style="solid",shape="box"];3313 -> 3704[label="",style="solid", color="burlywood", weight=9]; 3704 -> 3323[label="",style="solid", color="burlywood", weight=3]; 2010[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not True) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not True) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2010 -> 2068[label="",style="solid", color="black", weight=3]; 2011[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];2011 -> 2069[label="",style="solid", color="black", weight=3]; 2012[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (GT == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (GT == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2012 -> 2070[label="",style="solid", color="black", weight=3]; 3183[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) False",fontsize=16,color="black",shape="box"];3183 -> 3250[label="",style="solid", color="black", weight=3]; 3184[label="vuz178",fontsize=16,color="green",shape="box"];3185[label="vuz177",fontsize=16,color="green",shape="box"];2141[label="primQuotInt vuz360 vuz136",fontsize=16,color="burlywood",shape="box"];3705[label="vuz360/Pos vuz3600",fontsize=10,color="white",style="solid",shape="box"];2141 -> 3705[label="",style="solid", color="burlywood", weight=9]; 3705 -> 2189[label="",style="solid", color="burlywood", weight=3]; 3706[label="vuz360/Neg vuz3600",fontsize=10,color="white",style="solid",shape="box"];2141 -> 3706[label="",style="solid", color="burlywood", weight=9]; 3706 -> 2190[label="",style="solid", color="burlywood", weight=3]; 2020[label="Integer vuz360 `quot` absReal0 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];2020 -> 2079[label="",style="solid", color="black", weight=3]; 2022 -> 2082[label="",style="dashed", color="red", weight=0]; 2022[label="Integer vuz360 `quot` Integer (primNegInt (Neg (Succ vuz37000)))",fontsize=16,color="magenta"];2022 -> 2086[label="",style="dashed", color="magenta", weight=3]; 3249[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) True",fontsize=16,color="black",shape="box"];3249 -> 3318[label="",style="solid", color="black", weight=3]; 2028[label="Integer vuz360 `quot` (`negate` Integer (Neg Zero))",fontsize=16,color="black",shape="box"];2028 -> 2094[label="",style="solid", color="black", weight=3]; 3314[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat (Succ vuz1890) (Succ vuz1900) == LT)) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat (Succ vuz1890) (Succ vuz1900) == LT)) `rem` Integer vuz191)",fontsize=16,color="black",shape="box"];3314 -> 3324[label="",style="solid", color="black", weight=3]; 3315[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat (Succ vuz1890) Zero == LT)) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat (Succ vuz1890) Zero == LT)) `rem` Integer vuz191)",fontsize=16,color="black",shape="box"];3315 -> 3325[label="",style="solid", color="black", weight=3]; 3316[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat Zero (Succ vuz1900) == LT)) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat Zero (Succ vuz1900) == LT)) `rem` Integer vuz191)",fontsize=16,color="black",shape="box"];3316 -> 3326[label="",style="solid", color="black", weight=3]; 3317[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz191)",fontsize=16,color="black",shape="box"];3317 -> 3327[label="",style="solid", color="black", weight=3]; 2062 -> 2494[label="",style="dashed", color="red", weight=0]; 2062[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (Pos (Succ vuz37000)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer (Pos (Succ vuz37000)) `rem` Integer vuz94)",fontsize=16,color="magenta"];2062 -> 2495[label="",style="dashed", color="magenta", weight=3]; 2062 -> 2496[label="",style="dashed", color="magenta", weight=3]; 2063[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not True) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not True) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2063 -> 2156[label="",style="solid", color="black", weight=3]; 2064[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) True `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) True `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2064 -> 2157[label="",style="solid", color="black", weight=3]; 2065[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg (Succ vuz37000))) otherwise `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal0 (Integer (Neg (Succ vuz37000))) otherwise `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2065 -> 2158[label="",style="solid", color="black", weight=3]; 3320[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat (Succ vuz1960) (Succ vuz1970) == LT)) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat (Succ vuz1960) (Succ vuz1970) == LT)) `rem` Integer vuz198)",fontsize=16,color="black",shape="box"];3320 -> 3331[label="",style="solid", color="black", weight=3]; 3321[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat (Succ vuz1960) Zero == LT)) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat (Succ vuz1960) Zero == LT)) `rem` Integer vuz198)",fontsize=16,color="black",shape="box"];3321 -> 3332[label="",style="solid", color="black", weight=3]; 3322[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat Zero (Succ vuz1970) == LT)) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat Zero (Succ vuz1970) == LT)) `rem` Integer vuz198)",fontsize=16,color="black",shape="box"];3322 -> 3333[label="",style="solid", color="black", weight=3]; 3323[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz198)",fontsize=16,color="black",shape="box"];3323 -> 3334[label="",style="solid", color="black", weight=3]; 2068[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) False `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) False `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2068 -> 2163[label="",style="solid", color="black", weight=3]; 2069[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) True `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) True `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2069 -> 2164[label="",style="solid", color="black", weight=3]; 2070 -> 2011[label="",style="dashed", color="red", weight=0]; 2070[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz94)",fontsize=16,color="magenta"];3250[label="Integer vuz177 `quot` absReal0 (Integer (Pos (Succ vuz178))) otherwise",fontsize=16,color="black",shape="box"];3250 -> 3319[label="",style="solid", color="black", weight=3]; 2189[label="primQuotInt (Pos vuz3600) vuz136",fontsize=16,color="burlywood",shape="box"];3707[label="vuz136/Pos vuz1360",fontsize=10,color="white",style="solid",shape="box"];2189 -> 3707[label="",style="solid", color="burlywood", weight=9]; 3707 -> 2256[label="",style="solid", color="burlywood", weight=3]; 3708[label="vuz136/Neg vuz1360",fontsize=10,color="white",style="solid",shape="box"];2189 -> 3708[label="",style="solid", color="burlywood", weight=9]; 3708 -> 2257[label="",style="solid", color="burlywood", weight=3]; 2190[label="primQuotInt (Neg vuz3600) vuz136",fontsize=16,color="burlywood",shape="box"];3709[label="vuz136/Pos vuz1360",fontsize=10,color="white",style="solid",shape="box"];2190 -> 3709[label="",style="solid", color="burlywood", weight=9]; 3709 -> 2258[label="",style="solid", color="burlywood", weight=3]; 3710[label="vuz136/Neg vuz1360",fontsize=10,color="white",style="solid",shape="box"];2190 -> 3710[label="",style="solid", color="burlywood", weight=9]; 3710 -> 2259[label="",style="solid", color="burlywood", weight=3]; 2079[label="Integer vuz360 `quot` (`negate` Integer (Pos Zero))",fontsize=16,color="black",shape="box"];2079 -> 2170[label="",style="solid", color="black", weight=3]; 2086 -> 923[label="",style="dashed", color="red", weight=0]; 2086[label="primNegInt (Neg (Succ vuz37000))",fontsize=16,color="magenta"];2086 -> 2171[label="",style="dashed", color="magenta", weight=3]; 3318 -> 2082[label="",style="dashed", color="red", weight=0]; 3318[label="Integer vuz182 `quot` Integer (Neg (Succ vuz183))",fontsize=16,color="magenta"];3318 -> 3328[label="",style="dashed", color="magenta", weight=3]; 3318 -> 3329[label="",style="dashed", color="magenta", weight=3]; 2094 -> 2082[label="",style="dashed", color="red", weight=0]; 2094[label="Integer vuz360 `quot` Integer (primNegInt (Neg Zero))",fontsize=16,color="magenta"];2094 -> 2177[label="",style="dashed", color="magenta", weight=3]; 3324 -> 3186[label="",style="dashed", color="red", weight=0]; 3324[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat vuz1890 vuz1900 == LT)) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat vuz1890 vuz1900 == LT)) `rem` Integer vuz191)",fontsize=16,color="magenta"];3324 -> 3335[label="",style="dashed", color="magenta", weight=3]; 3324 -> 3336[label="",style="dashed", color="magenta", weight=3]; 3325 -> 1850[label="",style="dashed", color="red", weight=0]; 3325[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not (GT == LT)) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not (GT == LT)) `rem` Integer vuz191)",fontsize=16,color="magenta"];3325 -> 3337[label="",style="dashed", color="magenta", weight=3]; 3325 -> 3338[label="",style="dashed", color="magenta", weight=3]; 3325 -> 3339[label="",style="dashed", color="magenta", weight=3]; 3325 -> 3340[label="",style="dashed", color="magenta", weight=3]; 3326[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not (LT == LT)) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not (LT == LT)) `rem` Integer vuz191)",fontsize=16,color="black",shape="box"];3326 -> 3341[label="",style="solid", color="black", weight=3]; 3327[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not (EQ == LT)) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not (EQ == LT)) `rem` Integer vuz191)",fontsize=16,color="black",shape="box"];3327 -> 3342[label="",style="solid", color="black", weight=3]; 2495[label="Pos (Succ vuz37000)",fontsize=16,color="green",shape="box"];2496[label="Pos (Succ vuz37000)",fontsize=16,color="green",shape="box"];2494[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer vuz163 `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer vuz162 `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];2494 -> 2516[label="",style="solid", color="black", weight=3]; 2156[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) False `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) False `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2156 -> 2271[label="",style="solid", color="black", weight=3]; 2157 -> 2494[label="",style="dashed", color="red", weight=0]; 2157[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (Pos Zero) `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer (Pos Zero) `rem` Integer vuz94)",fontsize=16,color="magenta"];2157 -> 2497[label="",style="dashed", color="magenta", weight=3]; 2157 -> 2498[label="",style="dashed", color="magenta", weight=3]; 2158[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg (Succ vuz37000))) True `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal0 (Integer (Neg (Succ vuz37000))) True `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2158 -> 2273[label="",style="solid", color="black", weight=3]; 3331 -> 3251[label="",style="dashed", color="red", weight=0]; 3331[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat vuz1960 vuz1970 == LT)) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat vuz1960 vuz1970 == LT)) `rem` Integer vuz198)",fontsize=16,color="magenta"];3331 -> 3344[label="",style="dashed", color="magenta", weight=3]; 3331 -> 3345[label="",style="dashed", color="magenta", weight=3]; 3332[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not (GT == LT)) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not (GT == LT)) `rem` Integer vuz198)",fontsize=16,color="black",shape="box"];3332 -> 3346[label="",style="solid", color="black", weight=3]; 3333 -> 1855[label="",style="dashed", color="red", weight=0]; 3333[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not (LT == LT)) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not (LT == LT)) `rem` Integer vuz198)",fontsize=16,color="magenta"];3333 -> 3347[label="",style="dashed", color="magenta", weight=3]; 3333 -> 3348[label="",style="dashed", color="magenta", weight=3]; 3333 -> 3349[label="",style="dashed", color="magenta", weight=3]; 3333 -> 3350[label="",style="dashed", color="magenta", weight=3]; 3334[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not (EQ == LT)) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not (EQ == LT)) `rem` Integer vuz198)",fontsize=16,color="black",shape="box"];3334 -> 3351[label="",style="solid", color="black", weight=3]; 2163[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg Zero)) otherwise `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal0 (Integer (Neg Zero)) otherwise `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2163 -> 2278[label="",style="solid", color="black", weight=3]; 2164 -> 2494[label="",style="dashed", color="red", weight=0]; 2164[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (Neg Zero) `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer (Neg Zero) `rem` Integer vuz94)",fontsize=16,color="magenta"];2164 -> 2499[label="",style="dashed", color="magenta", weight=3]; 2164 -> 2500[label="",style="dashed", color="magenta", weight=3]; 3319[label="Integer vuz177 `quot` absReal0 (Integer (Pos (Succ vuz178))) True",fontsize=16,color="black",shape="box"];3319 -> 3330[label="",style="solid", color="black", weight=3]; 2256[label="primQuotInt (Pos vuz3600) (Pos vuz1360)",fontsize=16,color="burlywood",shape="box"];3711[label="vuz1360/Succ vuz13600",fontsize=10,color="white",style="solid",shape="box"];2256 -> 3711[label="",style="solid", color="burlywood", weight=9]; 3711 -> 2286[label="",style="solid", color="burlywood", weight=3]; 3712[label="vuz1360/Zero",fontsize=10,color="white",style="solid",shape="box"];2256 -> 3712[label="",style="solid", color="burlywood", weight=9]; 3712 -> 2287[label="",style="solid", color="burlywood", weight=3]; 2257[label="primQuotInt (Pos vuz3600) (Neg vuz1360)",fontsize=16,color="burlywood",shape="box"];3713[label="vuz1360/Succ vuz13600",fontsize=10,color="white",style="solid",shape="box"];2257 -> 3713[label="",style="solid", color="burlywood", weight=9]; 3713 -> 2288[label="",style="solid", color="burlywood", weight=3]; 3714[label="vuz1360/Zero",fontsize=10,color="white",style="solid",shape="box"];2257 -> 3714[label="",style="solid", color="burlywood", weight=9]; 3714 -> 2289[label="",style="solid", color="burlywood", weight=3]; 2258[label="primQuotInt (Neg vuz3600) (Pos vuz1360)",fontsize=16,color="burlywood",shape="box"];3715[label="vuz1360/Succ vuz13600",fontsize=10,color="white",style="solid",shape="box"];2258 -> 3715[label="",style="solid", color="burlywood", weight=9]; 3715 -> 2290[label="",style="solid", color="burlywood", weight=3]; 3716[label="vuz1360/Zero",fontsize=10,color="white",style="solid",shape="box"];2258 -> 3716[label="",style="solid", color="burlywood", weight=9]; 3716 -> 2291[label="",style="solid", color="burlywood", weight=3]; 2259[label="primQuotInt (Neg vuz3600) (Neg vuz1360)",fontsize=16,color="burlywood",shape="box"];3717[label="vuz1360/Succ vuz13600",fontsize=10,color="white",style="solid",shape="box"];2259 -> 3717[label="",style="solid", color="burlywood", weight=9]; 3717 -> 2292[label="",style="solid", color="burlywood", weight=3]; 3718[label="vuz1360/Zero",fontsize=10,color="white",style="solid",shape="box"];2259 -> 3718[label="",style="solid", color="burlywood", weight=9]; 3718 -> 2293[label="",style="solid", color="burlywood", weight=3]; 2170 -> 2082[label="",style="dashed", color="red", weight=0]; 2170[label="Integer vuz360 `quot` Integer (primNegInt (Pos Zero))",fontsize=16,color="magenta"];2170 -> 2294[label="",style="dashed", color="magenta", weight=3]; 2171[label="vuz37000",fontsize=16,color="green",shape="box"];3328[label="Neg (Succ vuz183)",fontsize=16,color="green",shape="box"];3329[label="vuz182",fontsize=16,color="green",shape="box"];2177 -> 963[label="",style="dashed", color="red", weight=0]; 2177[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];3335[label="vuz1900",fontsize=16,color="green",shape="box"];3336[label="vuz1890",fontsize=16,color="green",shape="box"];3337[label="vuz192",fontsize=16,color="green",shape="box"];3338[label="vuz188",fontsize=16,color="green",shape="box"];3339[label="vuz191",fontsize=16,color="green",shape="box"];3340[label="vuz187",fontsize=16,color="green",shape="box"];3341[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not True) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not True) `rem` Integer vuz191)",fontsize=16,color="black",shape="box"];3341 -> 3352[label="",style="solid", color="black", weight=3]; 3342 -> 1950[label="",style="dashed", color="red", weight=0]; 3342[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not False) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not False) `rem` Integer vuz191)",fontsize=16,color="magenta"];3342 -> 3353[label="",style="dashed", color="magenta", weight=3]; 3342 -> 3354[label="",style="dashed", color="magenta", weight=3]; 3342 -> 3355[label="",style="dashed", color="magenta", weight=3]; 3342 -> 3356[label="",style="dashed", color="magenta", weight=3]; 2516 -> 2552[label="",style="dashed", color="red", weight=0]; 2516[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (primRemInt vuz163 vuz94) == vuz101) (Integer vuz94) (Integer (primRemInt vuz163 vuz94))",fontsize=16,color="magenta"];2516 -> 2553[label="",style="dashed", color="magenta", weight=3]; 2516 -> 2554[label="",style="dashed", color="magenta", weight=3]; 2271[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos Zero)) otherwise `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal0 (Integer (Pos Zero)) otherwise `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2271 -> 2383[label="",style="solid", color="black", weight=3]; 2497[label="Pos Zero",fontsize=16,color="green",shape="box"];2498[label="Pos Zero",fontsize=16,color="green",shape="box"];2273[label="Integer vuz360 `quot` gcd0Gcd'1 ((`negate` Integer (Neg (Succ vuz37000))) `rem` Integer vuz94 == vuz101) (Integer vuz94) ((`negate` Integer (Neg (Succ vuz37000))) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2273 -> 2386[label="",style="solid", color="black", weight=3]; 3344[label="vuz1960",fontsize=16,color="green",shape="box"];3345[label="vuz1970",fontsize=16,color="green",shape="box"];3346[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not False) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not False) `rem` Integer vuz198)",fontsize=16,color="black",shape="triangle"];3346 -> 3359[label="",style="solid", color="black", weight=3]; 3347[label="vuz199",fontsize=16,color="green",shape="box"];3348[label="vuz198",fontsize=16,color="green",shape="box"];3349[label="vuz194",fontsize=16,color="green",shape="box"];3350[label="vuz195",fontsize=16,color="green",shape="box"];3351 -> 3346[label="",style="dashed", color="red", weight=0]; 3351[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not False) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not False) `rem` Integer vuz198)",fontsize=16,color="magenta"];2278[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg Zero)) True `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal0 (Integer (Neg Zero)) True `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2278 -> 2392[label="",style="solid", color="black", weight=3]; 2499[label="Neg Zero",fontsize=16,color="green",shape="box"];2500[label="Neg Zero",fontsize=16,color="green",shape="box"];3330[label="Integer vuz177 `quot` (`negate` Integer (Pos (Succ vuz178)))",fontsize=16,color="black",shape="box"];3330 -> 3343[label="",style="solid", color="black", weight=3]; 2286[label="primQuotInt (Pos vuz3600) (Pos (Succ vuz13600))",fontsize=16,color="black",shape="box"];2286 -> 2402[label="",style="solid", color="black", weight=3]; 2287[label="primQuotInt (Pos vuz3600) (Pos Zero)",fontsize=16,color="black",shape="box"];2287 -> 2403[label="",style="solid", color="black", weight=3]; 2288[label="primQuotInt (Pos vuz3600) (Neg (Succ vuz13600))",fontsize=16,color="black",shape="box"];2288 -> 2404[label="",style="solid", color="black", weight=3]; 2289[label="primQuotInt (Pos vuz3600) (Neg Zero)",fontsize=16,color="black",shape="box"];2289 -> 2405[label="",style="solid", color="black", weight=3]; 2290[label="primQuotInt (Neg vuz3600) (Pos (Succ vuz13600))",fontsize=16,color="black",shape="box"];2290 -> 2406[label="",style="solid", color="black", weight=3]; 2291[label="primQuotInt (Neg vuz3600) (Pos Zero)",fontsize=16,color="black",shape="box"];2291 -> 2407[label="",style="solid", color="black", weight=3]; 2292[label="primQuotInt (Neg vuz3600) (Neg (Succ vuz13600))",fontsize=16,color="black",shape="box"];2292 -> 2408[label="",style="solid", color="black", weight=3]; 2293[label="primQuotInt (Neg vuz3600) (Neg Zero)",fontsize=16,color="black",shape="box"];2293 -> 2409[label="",style="solid", color="black", weight=3]; 2294 -> 985[label="",style="dashed", color="red", weight=0]; 2294[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];3352[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) False `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) False `rem` Integer vuz191)",fontsize=16,color="black",shape="box"];3352 -> 3360[label="",style="solid", color="black", weight=3]; 3353[label="vuz192",fontsize=16,color="green",shape="box"];3354[label="vuz188",fontsize=16,color="green",shape="box"];3355[label="vuz191",fontsize=16,color="green",shape="box"];3356[label="vuz187",fontsize=16,color="green",shape="box"];2553 -> 642[label="",style="dashed", color="red", weight=0]; 2553[label="primRemInt vuz163 vuz94",fontsize=16,color="magenta"];2553 -> 2561[label="",style="dashed", color="magenta", weight=3]; 2553 -> 2562[label="",style="dashed", color="magenta", weight=3]; 2554 -> 211[label="",style="dashed", color="red", weight=0]; 2554[label="Integer (primRemInt vuz163 vuz94) == vuz101",fontsize=16,color="magenta"];2554 -> 2563[label="",style="dashed", color="magenta", weight=3]; 2554 -> 2564[label="",style="dashed", color="magenta", weight=3]; 2552[label="Integer vuz360 `quot` gcd0Gcd'1 vuz164 (Integer vuz94) (Integer vuz165)",fontsize=16,color="burlywood",shape="triangle"];3719[label="vuz164/False",fontsize=10,color="white",style="solid",shape="box"];2552 -> 3719[label="",style="solid", color="burlywood", weight=9]; 3719 -> 2565[label="",style="solid", color="burlywood", weight=3]; 3720[label="vuz164/True",fontsize=10,color="white",style="solid",shape="box"];2552 -> 3720[label="",style="solid", color="burlywood", weight=9]; 3720 -> 2566[label="",style="solid", color="burlywood", weight=3]; 2383[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos Zero)) True `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal0 (Integer (Pos Zero)) True `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2383 -> 2489[label="",style="solid", color="black", weight=3]; 2386 -> 2494[label="",style="dashed", color="red", weight=0]; 2386[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (primNegInt (Neg (Succ vuz37000))) `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer (primNegInt (Neg (Succ vuz37000))) `rem` Integer vuz94)",fontsize=16,color="magenta"];2386 -> 2501[label="",style="dashed", color="magenta", weight=3]; 2386 -> 2502[label="",style="dashed", color="magenta", weight=3]; 3359[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) True `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) True `rem` Integer vuz198)",fontsize=16,color="black",shape="box"];3359 -> 3362[label="",style="solid", color="black", weight=3]; 2392[label="Integer vuz360 `quot` gcd0Gcd'1 ((`negate` Integer (Neg Zero)) `rem` Integer vuz94 == vuz101) (Integer vuz94) ((`negate` Integer (Neg Zero)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2392 -> 2522[label="",style="solid", color="black", weight=3]; 3343 -> 2082[label="",style="dashed", color="red", weight=0]; 3343[label="Integer vuz177 `quot` Integer (primNegInt (Pos (Succ vuz178)))",fontsize=16,color="magenta"];3343 -> 3357[label="",style="dashed", color="magenta", weight=3]; 3343 -> 3358[label="",style="dashed", color="magenta", weight=3]; 2402[label="Pos (primDivNatS vuz3600 (Succ vuz13600))",fontsize=16,color="green",shape="box"];2402 -> 2529[label="",style="dashed", color="green", weight=3]; 2403 -> 484[label="",style="dashed", color="red", weight=0]; 2403[label="error []",fontsize=16,color="magenta"];2404[label="Neg (primDivNatS vuz3600 (Succ vuz13600))",fontsize=16,color="green",shape="box"];2404 -> 2530[label="",style="dashed", color="green", weight=3]; 2405 -> 484[label="",style="dashed", color="red", weight=0]; 2405[label="error []",fontsize=16,color="magenta"];2406[label="Neg (primDivNatS vuz3600 (Succ vuz13600))",fontsize=16,color="green",shape="box"];2406 -> 2531[label="",style="dashed", color="green", weight=3]; 2407 -> 484[label="",style="dashed", color="red", weight=0]; 2407[label="error []",fontsize=16,color="magenta"];2408[label="Pos (primDivNatS vuz3600 (Succ vuz13600))",fontsize=16,color="green",shape="box"];2408 -> 2532[label="",style="dashed", color="green", weight=3]; 2409 -> 484[label="",style="dashed", color="red", weight=0]; 2409[label="error []",fontsize=16,color="magenta"];3360[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos (Succ vuz188))) otherwise `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal0 (Integer (Pos (Succ vuz188))) otherwise `rem` Integer vuz191)",fontsize=16,color="black",shape="box"];3360 -> 3363[label="",style="solid", color="black", weight=3]; 2561[label="vuz94",fontsize=16,color="green",shape="box"];2562[label="vuz163",fontsize=16,color="green",shape="box"];2563 -> 642[label="",style="dashed", color="red", weight=0]; 2563[label="primRemInt vuz163 vuz94",fontsize=16,color="magenta"];2563 -> 2610[label="",style="dashed", color="magenta", weight=3]; 2563 -> 2611[label="",style="dashed", color="magenta", weight=3]; 2564[label="vuz101",fontsize=16,color="green",shape="box"];2565[label="Integer vuz360 `quot` gcd0Gcd'1 False (Integer vuz94) (Integer vuz165)",fontsize=16,color="black",shape="box"];2565 -> 2612[label="",style="solid", color="black", weight=3]; 2566[label="Integer vuz360 `quot` gcd0Gcd'1 True (Integer vuz94) (Integer vuz165)",fontsize=16,color="black",shape="box"];2566 -> 2613[label="",style="solid", color="black", weight=3]; 2489[label="Integer vuz360 `quot` gcd0Gcd'1 ((`negate` Integer (Pos Zero)) `rem` Integer vuz94 == vuz101) (Integer vuz94) ((`negate` Integer (Pos Zero)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2489 -> 2543[label="",style="solid", color="black", weight=3]; 2501 -> 923[label="",style="dashed", color="red", weight=0]; 2501[label="primNegInt (Neg (Succ vuz37000))",fontsize=16,color="magenta"];2501 -> 2544[label="",style="dashed", color="magenta", weight=3]; 2502 -> 923[label="",style="dashed", color="red", weight=0]; 2502[label="primNegInt (Neg (Succ vuz37000))",fontsize=16,color="magenta"];2502 -> 2545[label="",style="dashed", color="magenta", weight=3]; 3362 -> 2494[label="",style="dashed", color="red", weight=0]; 3362[label="Integer vuz194 `quot` gcd0Gcd'1 (Integer (Neg (Succ vuz195)) `rem` Integer vuz198 == vuz199) (Integer vuz198) (Integer (Neg (Succ vuz195)) `rem` Integer vuz198)",fontsize=16,color="magenta"];3362 -> 3364[label="",style="dashed", color="magenta", weight=3]; 3362 -> 3365[label="",style="dashed", color="magenta", weight=3]; 3362 -> 3366[label="",style="dashed", color="magenta", weight=3]; 3362 -> 3367[label="",style="dashed", color="magenta", weight=3]; 3362 -> 3368[label="",style="dashed", color="magenta", weight=3]; 2522 -> 2494[label="",style="dashed", color="red", weight=0]; 2522[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (primNegInt (Neg Zero)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer (primNegInt (Neg Zero)) `rem` Integer vuz94)",fontsize=16,color="magenta"];2522 -> 2572[label="",style="dashed", color="magenta", weight=3]; 2522 -> 2573[label="",style="dashed", color="magenta", weight=3]; 3357 -> 1701[label="",style="dashed", color="red", weight=0]; 3357[label="primNegInt (Pos (Succ vuz178))",fontsize=16,color="magenta"];3357 -> 3361[label="",style="dashed", color="magenta", weight=3]; 3358[label="vuz177",fontsize=16,color="green",shape="box"];2529 -> 497[label="",style="dashed", color="red", weight=0]; 2529[label="primDivNatS vuz3600 (Succ vuz13600)",fontsize=16,color="magenta"];2529 -> 2581[label="",style="dashed", color="magenta", weight=3]; 2529 -> 2582[label="",style="dashed", color="magenta", weight=3]; 2530 -> 497[label="",style="dashed", color="red", weight=0]; 2530[label="primDivNatS vuz3600 (Succ vuz13600)",fontsize=16,color="magenta"];2530 -> 2583[label="",style="dashed", color="magenta", weight=3]; 2530 -> 2584[label="",style="dashed", color="magenta", weight=3]; 2531 -> 497[label="",style="dashed", color="red", weight=0]; 2531[label="primDivNatS vuz3600 (Succ vuz13600)",fontsize=16,color="magenta"];2531 -> 2585[label="",style="dashed", color="magenta", weight=3]; 2531 -> 2586[label="",style="dashed", color="magenta", weight=3]; 2532 -> 497[label="",style="dashed", color="red", weight=0]; 2532[label="primDivNatS vuz3600 (Succ vuz13600)",fontsize=16,color="magenta"];2532 -> 2587[label="",style="dashed", color="magenta", weight=3]; 2532 -> 2588[label="",style="dashed", color="magenta", weight=3]; 3363[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos (Succ vuz188))) True `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal0 (Integer (Pos (Succ vuz188))) True `rem` Integer vuz191)",fontsize=16,color="black",shape="box"];3363 -> 3369[label="",style="solid", color="black", weight=3]; 2610[label="vuz94",fontsize=16,color="green",shape="box"];2611[label="vuz163",fontsize=16,color="green",shape="box"];2612[label="Integer vuz360 `quot` gcd0Gcd'0 (Integer vuz94) (Integer vuz165)",fontsize=16,color="black",shape="box"];2612 -> 2649[label="",style="solid", color="black", weight=3]; 2613 -> 2082[label="",style="dashed", color="red", weight=0]; 2613[label="Integer vuz360 `quot` Integer vuz94",fontsize=16,color="magenta"];2613 -> 2650[label="",style="dashed", color="magenta", weight=3]; 2543 -> 2494[label="",style="dashed", color="red", weight=0]; 2543[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (primNegInt (Pos Zero)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer (primNegInt (Pos Zero)) `rem` Integer vuz94)",fontsize=16,color="magenta"];2543 -> 2601[label="",style="dashed", color="magenta", weight=3]; 2543 -> 2602[label="",style="dashed", color="magenta", weight=3]; 2544[label="vuz37000",fontsize=16,color="green",shape="box"];2545[label="vuz37000",fontsize=16,color="green",shape="box"];3364[label="Neg (Succ vuz195)",fontsize=16,color="green",shape="box"];3365[label="vuz199",fontsize=16,color="green",shape="box"];3366[label="vuz198",fontsize=16,color="green",shape="box"];3367[label="Neg (Succ vuz195)",fontsize=16,color="green",shape="box"];3368[label="vuz194",fontsize=16,color="green",shape="box"];2572 -> 963[label="",style="dashed", color="red", weight=0]; 2572[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];2573 -> 963[label="",style="dashed", color="red", weight=0]; 2573[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];3361[label="vuz178",fontsize=16,color="green",shape="box"];2581[label="vuz3600",fontsize=16,color="green",shape="box"];2582[label="vuz13600",fontsize=16,color="green",shape="box"];2583[label="vuz3600",fontsize=16,color="green",shape="box"];2584[label="vuz13600",fontsize=16,color="green",shape="box"];2585[label="vuz3600",fontsize=16,color="green",shape="box"];2586[label="vuz13600",fontsize=16,color="green",shape="box"];2587[label="vuz3600",fontsize=16,color="green",shape="box"];2588[label="vuz13600",fontsize=16,color="green",shape="box"];3369[label="Integer vuz187 `quot` gcd0Gcd'1 ((`negate` Integer (Pos (Succ vuz188))) `rem` Integer vuz191 == vuz192) (Integer vuz191) ((`negate` Integer (Pos (Succ vuz188))) `rem` Integer vuz191)",fontsize=16,color="black",shape="box"];3369 -> 3370[label="",style="solid", color="black", weight=3]; 2649[label="Integer vuz360 `quot` gcd0Gcd' (Integer vuz165) (Integer vuz94 `rem` Integer vuz165)",fontsize=16,color="black",shape="box"];2649 -> 2676[label="",style="solid", color="black", weight=3]; 2650[label="vuz94",fontsize=16,color="green",shape="box"];2601 -> 985[label="",style="dashed", color="red", weight=0]; 2601[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];2602 -> 985[label="",style="dashed", color="red", weight=0]; 2602[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];3370 -> 2494[label="",style="dashed", color="red", weight=0]; 3370[label="Integer vuz187 `quot` gcd0Gcd'1 (Integer (primNegInt (Pos (Succ vuz188))) `rem` Integer vuz191 == vuz192) (Integer vuz191) (Integer (primNegInt (Pos (Succ vuz188))) `rem` Integer vuz191)",fontsize=16,color="magenta"];3370 -> 3371[label="",style="dashed", color="magenta", weight=3]; 3370 -> 3372[label="",style="dashed", color="magenta", weight=3]; 3370 -> 3373[label="",style="dashed", color="magenta", weight=3]; 3370 -> 3374[label="",style="dashed", color="magenta", weight=3]; 3370 -> 3375[label="",style="dashed", color="magenta", weight=3]; 2676[label="Integer vuz360 `quot` gcd0Gcd'2 (Integer vuz165) (Integer vuz94 `rem` Integer vuz165)",fontsize=16,color="black",shape="box"];2676 -> 2704[label="",style="solid", color="black", weight=3]; 3371 -> 1701[label="",style="dashed", color="red", weight=0]; 3371[label="primNegInt (Pos (Succ vuz188))",fontsize=16,color="magenta"];3371 -> 3376[label="",style="dashed", color="magenta", weight=3]; 3372[label="vuz192",fontsize=16,color="green",shape="box"];3373[label="vuz191",fontsize=16,color="green",shape="box"];3374 -> 1701[label="",style="dashed", color="red", weight=0]; 3374[label="primNegInt (Pos (Succ vuz188))",fontsize=16,color="magenta"];3374 -> 3377[label="",style="dashed", color="magenta", weight=3]; 3375[label="vuz187",fontsize=16,color="green",shape="box"];2704 -> 2494[label="",style="dashed", color="red", weight=0]; 2704[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer vuz94 `rem` Integer vuz165 == fromInt (Pos Zero)) (Integer vuz165) (Integer vuz94 `rem` Integer vuz165)",fontsize=16,color="magenta"];2704 -> 2734[label="",style="dashed", color="magenta", weight=3]; 2704 -> 2735[label="",style="dashed", color="magenta", weight=3]; 2704 -> 2736[label="",style="dashed", color="magenta", weight=3]; 2704 -> 2737[label="",style="dashed", color="magenta", weight=3]; 3376[label="vuz188",fontsize=16,color="green",shape="box"];3377[label="vuz188",fontsize=16,color="green",shape="box"];2734[label="vuz94",fontsize=16,color="green",shape="box"];2735 -> 12[label="",style="dashed", color="red", weight=0]; 2735[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2736[label="vuz165",fontsize=16,color="green",shape="box"];2737[label="vuz94",fontsize=16,color="green",shape="box"];} ---------------------------------------- (12) Complex Obligation (AND) ---------------------------------------- (13) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz360, vuz163, vuz94, vuz101, vuz162) -> new_quot2(vuz360, new_esEs0(new_primRemInt(vuz163, vuz94), vuz101), vuz94, new_primRemInt(vuz163, vuz94)) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, new_fromInt0, vuz94) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primEqNat0(Zero, Zero) -> True new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primEqInt(Neg(Succ(vuz2700)), Neg(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primEqInt(Neg(Succ(vuz2700)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2600))) -> False new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2600))) -> False new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primModNatS1(Zero, vuz6800) -> Zero new_primEqInt(Pos(Succ(vuz2700)), Pos(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_error -> error([]) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_esEs0(vuz28, Integer(vuz250)) -> new_primEqInt(vuz28, vuz250) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqNat0(Succ(vuz27000), Zero) -> False new_primEqNat0(Zero, Succ(vuz26000)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqNat0(Succ(vuz27000), Succ(vuz26000)) -> new_primEqNat0(vuz27000, vuz26000) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primEqInt(Pos(Succ(vuz2700)), Neg(vuz260)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_fromInt0 -> Integer(Pos(Zero)) new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primEqInt(Pos(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2600))) -> False new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_fromInt0 new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_esEs0(x0, Integer(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (14) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, new_fromInt0, vuz94) at position [3] we obtained the following new rules [LPAR04]: (new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94),new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94)) ---------------------------------------- (15) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz360, vuz163, vuz94, vuz101, vuz162) -> new_quot2(vuz360, new_esEs0(new_primRemInt(vuz163, vuz94), vuz101), vuz94, new_primRemInt(vuz163, vuz94)) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primEqNat0(Zero, Zero) -> True new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primEqInt(Neg(Succ(vuz2700)), Neg(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primEqInt(Neg(Succ(vuz2700)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2600))) -> False new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2600))) -> False new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primModNatS1(Zero, vuz6800) -> Zero new_primEqInt(Pos(Succ(vuz2700)), Pos(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_error -> error([]) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_esEs0(vuz28, Integer(vuz250)) -> new_primEqInt(vuz28, vuz250) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqNat0(Succ(vuz27000), Zero) -> False new_primEqNat0(Zero, Succ(vuz26000)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqNat0(Succ(vuz27000), Succ(vuz26000)) -> new_primEqNat0(vuz27000, vuz26000) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primEqInt(Pos(Succ(vuz2700)), Neg(vuz260)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_fromInt0 -> Integer(Pos(Zero)) new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primEqInt(Pos(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2600))) -> False new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_fromInt0 new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_esEs0(x0, Integer(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (16) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (17) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz360, vuz163, vuz94, vuz101, vuz162) -> new_quot2(vuz360, new_esEs0(new_primRemInt(vuz163, vuz94), vuz101), vuz94, new_primRemInt(vuz163, vuz94)) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_esEs0(vuz28, Integer(vuz250)) -> new_primEqInt(vuz28, vuz250) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz2700)), Neg(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primEqInt(Neg(Succ(vuz2700)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2600))) -> False new_primEqInt(Pos(Succ(vuz2700)), Pos(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primEqInt(Pos(Succ(vuz2700)), Neg(vuz260)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2600))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz27000), Zero) -> False new_primEqNat0(Zero, Succ(vuz26000)) -> False new_primEqNat0(Succ(vuz27000), Succ(vuz26000)) -> new_primEqNat0(vuz27000, vuz26000) new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_fromInt0 new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_esEs0(x0, Integer(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (18) 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_fromInt0 ---------------------------------------- (19) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(vuz360, vuz163, vuz94, vuz101, vuz162) -> new_quot2(vuz360, new_esEs0(new_primRemInt(vuz163, vuz94), vuz101), vuz94, new_primRemInt(vuz163, vuz94)) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_esEs0(vuz28, Integer(vuz250)) -> new_primEqInt(vuz28, vuz250) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz2700)), Neg(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primEqInt(Neg(Succ(vuz2700)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2600))) -> False new_primEqInt(Pos(Succ(vuz2700)), Pos(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primEqInt(Pos(Succ(vuz2700)), Neg(vuz260)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2600))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz27000), Zero) -> False new_primEqNat0(Zero, Succ(vuz26000)) -> False new_primEqNat0(Succ(vuz27000), Succ(vuz26000)) -> new_primEqNat0(vuz27000, vuz26000) new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_esEs0(x0, Integer(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (20) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule new_quot1(vuz360, vuz163, vuz94, vuz101, vuz162) -> new_quot2(vuz360, new_esEs0(new_primRemInt(vuz163, vuz94), vuz101), vuz94, new_primRemInt(vuz163, vuz94)) we obtained the following new rules [LPAR04]: (new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_esEs0(new_primRemInt(z1, z2), Integer(Pos(Zero))), z2, new_primRemInt(z1, z2)),new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_esEs0(new_primRemInt(z1, z2), Integer(Pos(Zero))), z2, new_primRemInt(z1, z2))) ---------------------------------------- (21) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_esEs0(new_primRemInt(z1, z2), Integer(Pos(Zero))), z2, new_primRemInt(z1, z2)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_esEs0(vuz28, Integer(vuz250)) -> new_primEqInt(vuz28, vuz250) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz2700)), Neg(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primEqInt(Neg(Succ(vuz2700)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2600))) -> False new_primEqInt(Pos(Succ(vuz2700)), Pos(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primEqInt(Pos(Succ(vuz2700)), Neg(vuz260)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2600))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz27000), Zero) -> False new_primEqNat0(Zero, Succ(vuz26000)) -> False new_primEqNat0(Succ(vuz27000), Succ(vuz26000)) -> new_primEqNat0(vuz27000, vuz26000) new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_esEs0(x0, Integer(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (22) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_esEs0(new_primRemInt(z1, z2), Integer(Pos(Zero))), z2, new_primRemInt(z1, z2)) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)),new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2))) ---------------------------------------- (23) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_esEs0(vuz28, Integer(vuz250)) -> new_primEqInt(vuz28, vuz250) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz2700)), Neg(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primEqInt(Neg(Succ(vuz2700)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2600))) -> False new_primEqInt(Pos(Succ(vuz2700)), Pos(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primEqInt(Pos(Succ(vuz2700)), Neg(vuz260)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2600))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz27000), Zero) -> False new_primEqNat0(Zero, Succ(vuz26000)) -> False new_primEqNat0(Succ(vuz27000), Succ(vuz26000)) -> new_primEqNat0(vuz27000, vuz26000) new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_esEs0(x0, Integer(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (24) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (25) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_esEs0(x0, Integer(x1)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (26) 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_primEqNat0(Zero, Zero) new_primEqNat0(Succ(x0), Succ(x1)) new_primEqNat0(Zero, Succ(x0)) new_primEqNat0(Succ(x0), Zero) new_esEs0(x0, Integer(x1)) ---------------------------------------- (27) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (28) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) the following chains were created: *We consider the chain new_quot2(x3, False, x4, x5) -> new_quot1(x3, x4, x5, Integer(Pos(Zero)), x4), new_quot1(x6, x7, x8, Integer(Pos(Zero)), x7) -> new_quot2(x6, new_primEqInt(new_primRemInt(x7, x8), Pos(Zero)), x8, new_primRemInt(x7, x8)) which results in the following constraint: (1) (new_quot1(x3, x4, x5, Integer(Pos(Zero)), x4)=new_quot1(x6, x7, x8, Integer(Pos(Zero)), x7) ==> new_quot2(x3, False, x4, x5)_>=_new_quot1(x3, x4, x5, Integer(Pos(Zero)), x4)) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot2(x3, False, x4, x5)_>=_new_quot1(x3, x4, x5, Integer(Pos(Zero)), x4)) For Pair new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) the following chains were created: *We consider the chain new_quot1(x9, x10, x11, Integer(Pos(Zero)), x10) -> new_quot2(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11)), new_quot2(x12, False, x13, x14) -> new_quot1(x12, x13, x14, Integer(Pos(Zero)), x13) which results in the following constraint: (1) (new_quot2(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))=new_quot2(x12, False, x13, x14) ==> new_quot1(x9, x10, x11, Integer(Pos(Zero)), x10)_>=_new_quot2(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (new_primRemInt(x10, x11)=x18 & Pos(Zero)=x19 & new_primEqInt(x18, x19)=False ==> new_quot1(x9, x10, x11, Integer(Pos(Zero)), x10)_>=_new_quot2(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x18, x19)=False which results in the following new constraints: (3) (False=False & new_primRemInt(x10, x11)=Pos(Succ(x20)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x9, x10, x11, Integer(Pos(Zero)), x10)_>=_new_quot2(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))) (4) (False=False & new_primRemInt(x10, x11)=Neg(Succ(x22)) & Pos(Zero)=Pos(x21) ==> new_quot1(x9, x10, x11, Integer(Pos(Zero)), x10)_>=_new_quot2(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))) We simplified constraint (3) using rules (I), (II) which results in the following new constraint: (5) (new_primRemInt(x10, x11)=Pos(Succ(x20)) ==> new_quot1(x9, x10, x11, Integer(Pos(Zero)), x10)_>=_new_quot2(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))) We simplified constraint (4) using rules (I), (II), (IV) which results in the following new constraint: (6) (new_primRemInt(x10, x11)=Neg(Succ(x22)) ==> new_quot1(x9, x10, x11, Integer(Pos(Zero)), x10)_>=_new_quot2(x9, new_primEqInt(new_primRemInt(x10, x11), Pos(Zero)), x11, new_primRemInt(x10, x11))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primRemInt(x10, x11)=Pos(Succ(x20)) which results in the following new constraints: (7) (Pos(new_primModNatS1(x24, x23))=Pos(Succ(x20)) ==> new_quot1(x9, Pos(x24), Neg(Succ(x23)), Integer(Pos(Zero)), Pos(x24))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(x24), Neg(Succ(x23))), Pos(Zero)), Neg(Succ(x23)), new_primRemInt(Pos(x24), Neg(Succ(x23))))) (8) (Pos(new_primModNatS1(x26, x25))=Pos(Succ(x20)) ==> new_quot1(x9, Pos(x26), Pos(Succ(x25)), Integer(Pos(Zero)), Pos(x26))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(x26), Pos(Succ(x25))), Pos(Zero)), Pos(Succ(x25)), new_primRemInt(Pos(x26), Pos(Succ(x25))))) (9) (new_error=Pos(Succ(x20)) ==> new_quot1(x9, Neg(x27), Neg(Zero), Integer(Pos(Zero)), Neg(x27))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(x27), Neg(Zero)), Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x27), Neg(Zero)))) (10) (new_error=Pos(Succ(x20)) ==> new_quot1(x9, Pos(x30), Pos(Zero), Integer(Pos(Zero)), Pos(x30))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(x30), Pos(Zero)), Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x30), Pos(Zero)))) (11) (new_error=Pos(Succ(x20)) ==> new_quot1(x9, Pos(x33), Neg(Zero), Integer(Pos(Zero)), Pos(x33))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(x33), Neg(Zero)), Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x33), Neg(Zero)))) (12) (new_error=Pos(Succ(x20)) ==> new_quot1(x9, Neg(x34), Pos(Zero), Integer(Pos(Zero)), Neg(x34))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(x34), Pos(Zero)), Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x34), Pos(Zero)))) We simplified constraint (7) using rules (I), (II) which results in the following new constraint: (13) (new_primModNatS1(x24, x23)=Succ(x20) ==> new_quot1(x9, Pos(x24), Neg(Succ(x23)), Integer(Pos(Zero)), Pos(x24))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(x24), Neg(Succ(x23))), Pos(Zero)), Neg(Succ(x23)), new_primRemInt(Pos(x24), Neg(Succ(x23))))) We simplified constraint (8) using rules (I), (II) which results in the following new constraint: (14) (new_primModNatS1(x26, x25)=Succ(x20) ==> new_quot1(x9, Pos(x26), Pos(Succ(x25)), Integer(Pos(Zero)), Pos(x26))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(x26), Pos(Succ(x25))), Pos(Zero)), Pos(Succ(x25)), new_primRemInt(Pos(x26), Pos(Succ(x25))))) We solved constraint (9) using rule (V) (with possible (I) afterwards).We solved constraint (10) using rule (V) (with possible (I) afterwards).We solved constraint (11) using rule (V) (with possible (I) afterwards).We solved constraint (12) using rule (V) (with possible (I) afterwards).We simplified constraint (13) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x24, x23)=Succ(x20) which results in the following new constraints: (15) (Succ(Zero)=Succ(x20) ==> new_quot1(x9, Pos(Succ(Zero)), Neg(Succ(Succ(x35))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x35)))), Pos(Zero)), Neg(Succ(Succ(x35))), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x35)))))) (16) (new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)=Succ(x20) ==> new_quot1(x9, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))))) (17) (new_primModNatS1(new_primMinusNatS0(Succ(x37), Zero), Zero)=Succ(x20) ==> new_quot1(x9, Pos(Succ(Succ(x37))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x37))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x37))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x37))), Neg(Succ(Zero))))) (18) (new_primModNatS02(x39, x38, x39, x38)=Succ(x20) ==> new_quot1(x9, Pos(Succ(Succ(x39))), Neg(Succ(Succ(x38))), Integer(Pos(Zero)), Pos(Succ(Succ(x39))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x39))), Neg(Succ(Succ(x38)))), Pos(Zero)), Neg(Succ(Succ(x38))), new_primRemInt(Pos(Succ(Succ(x39))), Neg(Succ(Succ(x38)))))) We simplified constraint (15) using rules (I), (II), (IV) which results in the following new constraint: (19) (new_quot1(x9, Pos(Succ(Zero)), Neg(Succ(Succ(x35))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x35)))), Pos(Zero)), Neg(Succ(Succ(x35))), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x35)))))) We simplified constraint (16) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_quot1(x9, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))))) We simplified constraint (17) using rules (III), (IV), (VII) which results in the following new constraint: (21) (new_quot1(x9, Pos(Succ(Succ(x37))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x37))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x37))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x37))), Neg(Succ(Zero))))) We simplified constraint (18) using rules (III), (IV), (VII) which results in the following new constraint: (22) (new_quot1(x9, Pos(Succ(Succ(x48))), Neg(Succ(Succ(x49))), Integer(Pos(Zero)), Pos(Succ(Succ(x48))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x48))), Neg(Succ(Succ(x49)))), Pos(Zero)), Neg(Succ(Succ(x49))), new_primRemInt(Pos(Succ(Succ(x48))), Neg(Succ(Succ(x49)))))) We simplified constraint (14) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x26, x25)=Succ(x20) which results in the following new constraints: (23) (Succ(Zero)=Succ(x20) ==> new_quot1(x9, Pos(Succ(Zero)), Pos(Succ(Succ(x50))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x50)))), Pos(Zero)), Pos(Succ(Succ(x50))), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x50)))))) (24) (new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)=Succ(x20) ==> new_quot1(x9, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))))) (25) (new_primModNatS1(new_primMinusNatS0(Succ(x52), Zero), Zero)=Succ(x20) ==> new_quot1(x9, Pos(Succ(Succ(x52))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x52))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x52))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x52))), Pos(Succ(Zero))))) (26) (new_primModNatS02(x54, x53, x54, x53)=Succ(x20) ==> new_quot1(x9, Pos(Succ(Succ(x54))), Pos(Succ(Succ(x53))), Integer(Pos(Zero)), Pos(Succ(Succ(x54))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x54))), Pos(Succ(Succ(x53)))), Pos(Zero)), Pos(Succ(Succ(x53))), new_primRemInt(Pos(Succ(Succ(x54))), Pos(Succ(Succ(x53)))))) We simplified constraint (23) using rules (I), (II), (IV) which results in the following new constraint: (27) (new_quot1(x9, Pos(Succ(Zero)), Pos(Succ(Succ(x50))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x50)))), Pos(Zero)), Pos(Succ(Succ(x50))), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x50)))))) We simplified constraint (24) using rules (III), (IV), (VII) which results in the following new constraint: (28) (new_quot1(x9, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))))) We simplified constraint (25) using rules (III), (IV), (VII) which results in the following new constraint: (29) (new_quot1(x9, Pos(Succ(Succ(x52))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x52))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x52))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x52))), Pos(Succ(Zero))))) We simplified constraint (26) using rules (III), (IV), (VII) which results in the following new constraint: (30) (new_quot1(x9, Pos(Succ(Succ(x63))), Pos(Succ(Succ(x64))), Integer(Pos(Zero)), Pos(Succ(Succ(x63))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x63))), Pos(Succ(Succ(x64)))), Pos(Zero)), Pos(Succ(Succ(x64))), new_primRemInt(Pos(Succ(Succ(x63))), Pos(Succ(Succ(x64)))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primRemInt(x10, x11)=Neg(Succ(x22)) which results in the following new constraints: (31) (new_error=Neg(Succ(x22)) ==> new_quot1(x9, Neg(x69), Neg(Zero), Integer(Pos(Zero)), Neg(x69))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(x69), Neg(Zero)), Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x69), Neg(Zero)))) (32) (Neg(new_primModNatS1(x71, x70))=Neg(Succ(x22)) ==> new_quot1(x9, Neg(x71), Pos(Succ(x70)), Integer(Pos(Zero)), Neg(x71))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(x71), Pos(Succ(x70))), Pos(Zero)), Pos(Succ(x70)), new_primRemInt(Neg(x71), Pos(Succ(x70))))) (33) (new_error=Neg(Succ(x22)) ==> new_quot1(x9, Pos(x72), Pos(Zero), Integer(Pos(Zero)), Pos(x72))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(x72), Pos(Zero)), Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x72), Pos(Zero)))) (34) (Neg(new_primModNatS1(x74, x73))=Neg(Succ(x22)) ==> new_quot1(x9, Neg(x74), Neg(Succ(x73)), Integer(Pos(Zero)), Neg(x74))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(x74), Neg(Succ(x73))), Pos(Zero)), Neg(Succ(x73)), new_primRemInt(Neg(x74), Neg(Succ(x73))))) (35) (new_error=Neg(Succ(x22)) ==> new_quot1(x9, Pos(x75), Neg(Zero), Integer(Pos(Zero)), Pos(x75))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(x75), Neg(Zero)), Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x75), Neg(Zero)))) (36) (new_error=Neg(Succ(x22)) ==> new_quot1(x9, Neg(x76), Pos(Zero), Integer(Pos(Zero)), Neg(x76))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(x76), Pos(Zero)), Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x76), Pos(Zero)))) We solved constraint (31) using rule (V) (with possible (I) afterwards).We simplified constraint (32) using rules (I), (II) which results in the following new constraint: (37) (new_primModNatS1(x71, x70)=Succ(x22) ==> new_quot1(x9, Neg(x71), Pos(Succ(x70)), Integer(Pos(Zero)), Neg(x71))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(x71), Pos(Succ(x70))), Pos(Zero)), Pos(Succ(x70)), new_primRemInt(Neg(x71), Pos(Succ(x70))))) We solved constraint (33) using rule (V) (with possible (I) afterwards).We simplified constraint (34) using rules (I), (II) which results in the following new constraint: (38) (new_primModNatS1(x74, x73)=Succ(x22) ==> new_quot1(x9, Neg(x74), Neg(Succ(x73)), Integer(Pos(Zero)), Neg(x74))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(x74), Neg(Succ(x73))), Pos(Zero)), Neg(Succ(x73)), new_primRemInt(Neg(x74), Neg(Succ(x73))))) We solved constraint (35) using rule (V) (with possible (I) afterwards).We solved constraint (36) using rule (V) (with possible (I) afterwards).We simplified constraint (37) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x71, x70)=Succ(x22) which results in the following new constraints: (39) (Succ(Zero)=Succ(x22) ==> new_quot1(x9, Neg(Succ(Zero)), Pos(Succ(Succ(x77))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x77)))), Pos(Zero)), Pos(Succ(Succ(x77))), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x77)))))) (40) (new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)=Succ(x22) ==> new_quot1(x9, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))))) (41) (new_primModNatS1(new_primMinusNatS0(Succ(x79), Zero), Zero)=Succ(x22) ==> new_quot1(x9, Neg(Succ(Succ(x79))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x79))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x79))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x79))), Pos(Succ(Zero))))) (42) (new_primModNatS02(x81, x80, x81, x80)=Succ(x22) ==> new_quot1(x9, Neg(Succ(Succ(x81))), Pos(Succ(Succ(x80))), Integer(Pos(Zero)), Neg(Succ(Succ(x81))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x81))), Pos(Succ(Succ(x80)))), Pos(Zero)), Pos(Succ(Succ(x80))), new_primRemInt(Neg(Succ(Succ(x81))), Pos(Succ(Succ(x80)))))) We simplified constraint (39) using rules (I), (II), (IV) which results in the following new constraint: (43) (new_quot1(x9, Neg(Succ(Zero)), Pos(Succ(Succ(x77))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x77)))), Pos(Zero)), Pos(Succ(Succ(x77))), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x77)))))) We simplified constraint (40) using rules (III), (IV), (VII) which results in the following new constraint: (44) (new_quot1(x9, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))))) We simplified constraint (41) using rules (III), (IV), (VII) which results in the following new constraint: (45) (new_quot1(x9, Neg(Succ(Succ(x79))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x79))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x79))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x79))), Pos(Succ(Zero))))) We simplified constraint (42) using rules (III), (IV), (VII) which results in the following new constraint: (46) (new_quot1(x9, Neg(Succ(Succ(x90))), Pos(Succ(Succ(x91))), Integer(Pos(Zero)), Neg(Succ(Succ(x90))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x90))), Pos(Succ(Succ(x91)))), Pos(Zero)), Pos(Succ(Succ(x91))), new_primRemInt(Neg(Succ(Succ(x90))), Pos(Succ(Succ(x91)))))) We simplified constraint (38) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x74, x73)=Succ(x22) which results in the following new constraints: (47) (Succ(Zero)=Succ(x22) ==> new_quot1(x9, Neg(Succ(Zero)), Neg(Succ(Succ(x92))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x92)))), Pos(Zero)), Neg(Succ(Succ(x92))), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x92)))))) (48) (new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)=Succ(x22) ==> new_quot1(x9, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))))) (49) (new_primModNatS1(new_primMinusNatS0(Succ(x94), Zero), Zero)=Succ(x22) ==> new_quot1(x9, Neg(Succ(Succ(x94))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x94))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x94))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x94))), Neg(Succ(Zero))))) (50) (new_primModNatS02(x96, x95, x96, x95)=Succ(x22) ==> new_quot1(x9, Neg(Succ(Succ(x96))), Neg(Succ(Succ(x95))), Integer(Pos(Zero)), Neg(Succ(Succ(x96))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x96))), Neg(Succ(Succ(x95)))), Pos(Zero)), Neg(Succ(Succ(x95))), new_primRemInt(Neg(Succ(Succ(x96))), Neg(Succ(Succ(x95)))))) We simplified constraint (47) using rules (I), (II), (IV) which results in the following new constraint: (51) (new_quot1(x9, Neg(Succ(Zero)), Neg(Succ(Succ(x92))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x92)))), Pos(Zero)), Neg(Succ(Succ(x92))), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x92)))))) We simplified constraint (48) using rules (III), (IV), (VII) which results in the following new constraint: (52) (new_quot1(x9, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))))) We simplified constraint (49) using rules (III), (IV), (VII) which results in the following new constraint: (53) (new_quot1(x9, Neg(Succ(Succ(x94))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x94))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x94))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x94))), Neg(Succ(Zero))))) We simplified constraint (50) using rules (III), (IV), (VII) which results in the following new constraint: (54) (new_quot1(x9, Neg(Succ(Succ(x105))), Neg(Succ(Succ(x106))), Integer(Pos(Zero)), Neg(Succ(Succ(x105))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x105))), Neg(Succ(Succ(x106)))), Pos(Zero)), Neg(Succ(Succ(x106))), new_primRemInt(Neg(Succ(Succ(x105))), Neg(Succ(Succ(x106)))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) *(new_quot2(x3, False, x4, x5)_>=_new_quot1(x3, x4, x5, Integer(Pos(Zero)), x4)) *new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) *(new_quot1(x9, Pos(Succ(Zero)), Neg(Succ(Succ(x35))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x35)))), Pos(Zero)), Neg(Succ(Succ(x35))), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x35)))))) *(new_quot1(x9, Pos(Succ(Zero)), Pos(Succ(Succ(x50))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x50)))), Pos(Zero)), Pos(Succ(Succ(x50))), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x50)))))) *(new_quot1(x9, Neg(Succ(Zero)), Pos(Succ(Succ(x77))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x77)))), Pos(Zero)), Pos(Succ(Succ(x77))), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x77)))))) *(new_quot1(x9, Neg(Succ(Zero)), Neg(Succ(Succ(x92))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x92)))), Pos(Zero)), Neg(Succ(Succ(x92))), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x92)))))) *(new_quot1(x9, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))))) *(new_quot1(x9, Pos(Succ(Succ(x37))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x37))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x37))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x37))), Neg(Succ(Zero))))) *(new_quot1(x9, Pos(Succ(Succ(x48))), Neg(Succ(Succ(x49))), Integer(Pos(Zero)), Pos(Succ(Succ(x48))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x48))), Neg(Succ(Succ(x49)))), Pos(Zero)), Neg(Succ(Succ(x49))), new_primRemInt(Pos(Succ(Succ(x48))), Neg(Succ(Succ(x49)))))) *(new_quot1(x9, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))))) *(new_quot1(x9, Pos(Succ(Succ(x52))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x52))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x52))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x52))), Pos(Succ(Zero))))) *(new_quot1(x9, Pos(Succ(Succ(x63))), Pos(Succ(Succ(x64))), Integer(Pos(Zero)), Pos(Succ(Succ(x63))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Pos(Succ(Succ(x63))), Pos(Succ(Succ(x64)))), Pos(Zero)), Pos(Succ(Succ(x64))), new_primRemInt(Pos(Succ(Succ(x63))), Pos(Succ(Succ(x64)))))) *(new_quot1(x9, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))))) *(new_quot1(x9, Neg(Succ(Succ(x79))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x79))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x79))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x79))), Pos(Succ(Zero))))) *(new_quot1(x9, Neg(Succ(Succ(x90))), Pos(Succ(Succ(x91))), Integer(Pos(Zero)), Neg(Succ(Succ(x90))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x90))), Pos(Succ(Succ(x91)))), Pos(Zero)), Pos(Succ(Succ(x91))), new_primRemInt(Neg(Succ(Succ(x90))), Pos(Succ(Succ(x91)))))) *(new_quot1(x9, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))))) *(new_quot1(x9, Neg(Succ(Succ(x94))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x94))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x94))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x94))), Neg(Succ(Zero))))) *(new_quot1(x9, Neg(Succ(Succ(x105))), Neg(Succ(Succ(x106))), Integer(Pos(Zero)), Neg(Succ(Succ(x105))))_>=_new_quot2(x9, new_primEqInt(new_primRemInt(Neg(Succ(Succ(x105))), Neg(Succ(Succ(x106)))), Pos(Zero)), Neg(Succ(Succ(x106))), new_primRemInt(Neg(Succ(Succ(x105))), Neg(Succ(Succ(x106)))))) 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. ---------------------------------------- (29) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (30) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(z0, z1, z2, Integer(Pos(Zero)), z1) -> new_quot2(z0, new_primEqInt(new_primRemInt(z1, z2), Pos(Zero)), z2, new_primRemInt(z1, z2)) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Pos(x0), Neg(Succ(x1)))),new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Pos(x0), Neg(Succ(x1))))) (new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Pos(x0), Pos(Succ(x1)))),new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Pos(x0), Pos(Succ(x1))))) (new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))),new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero)))) (new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))),new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1))))) (new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))),new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero)))) (new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))),new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1))))) (new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))),new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero)))) (new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))),new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero)))) ---------------------------------------- (31) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Pos(x0), Neg(Succ(x1)))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Pos(x0), Pos(Succ(x1)))) new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (32) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Pos(x0), Neg(Succ(x1)))) at position [3] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))),new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1)))) ---------------------------------------- (33) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Pos(x0), Pos(Succ(x1)))) new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (34) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (35) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Pos(x0), Pos(Succ(x1)))) new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_error -> error([]) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (36) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Pos(x0), Pos(Succ(x1)))) at position [3] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))),new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1)))) ---------------------------------------- (37) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_error -> error([]) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (38) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (39) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_error -> error([]) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (40) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))),new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero)))) ---------------------------------------- (41) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Neg(Zero), new_primRemInt(Neg(x0), Neg(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_error -> error([]) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (42) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (43) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_error -> error([]) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (44) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (45) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_error -> error([]) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (46) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), new_primRemInt(Neg(x0), Pos(Succ(x1)))) at position [3] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))),new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1)))) ---------------------------------------- (47) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_error -> error([]) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (48) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (49) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (50) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))),new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero)))) ---------------------------------------- (51) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Pos(Zero), new_primRemInt(Pos(x0), Pos(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (52) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (53) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (54) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (55) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (56) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), new_primRemInt(Neg(x0), Neg(Succ(x1)))) at position [3] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))),new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1)))) ---------------------------------------- (57) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (58) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (59) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (60) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))),new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero)))) ---------------------------------------- (61) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Neg(Zero), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Neg(Zero), new_primRemInt(Pos(x0), Neg(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (62) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (63) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (64) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (65) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (66) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(new_error, Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))),new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero)))) ---------------------------------------- (67) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Zero), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(error([]), Pos(Zero)), Pos(Zero), new_primRemInt(Neg(x0), Pos(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (68) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (69) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_error -> error([]) new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (70) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (71) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (72) 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_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_error new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) ---------------------------------------- (73) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (74) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Pos(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0))))) (new_quot1(y0, Pos(Zero), Neg(Succ(x0)), Integer(Pos(Zero)), Pos(Zero)) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(x0)), Pos(new_primModNatS1(Zero, x0))),new_quot1(y0, Pos(Zero), Neg(Succ(x0)), Integer(Pos(Zero)), Pos(Zero)) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(x0)), Pos(new_primModNatS1(Zero, x0)))) (new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) (new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))),new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1))))) ---------------------------------------- (75) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Pos(Zero), Neg(Succ(x0)), Integer(Pos(Zero)), Pos(Zero)) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(x0)), Pos(new_primModNatS1(Zero, x0))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (76) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (77) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (78) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0))))) ---------------------------------------- (79) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (80) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (81) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (82) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (83) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (84) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))),new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1)))) ---------------------------------------- (85) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (86) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))),new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero)))) ---------------------------------------- (87) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (88) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) ---------------------------------------- (89) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (90) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (91) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (92) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (93) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (94) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (95) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (96) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Pos(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Pos(x0)) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0))))) (new_quot1(y0, Pos(Zero), Pos(Succ(x0)), Integer(Pos(Zero)), Pos(Zero)) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(x0)), Pos(new_primModNatS1(Zero, x0))),new_quot1(y0, Pos(Zero), Pos(Succ(x0)), Integer(Pos(Zero)), Pos(Zero)) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(x0)), Pos(new_primModNatS1(Zero, x0)))) (new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) (new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))),new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1))))) ---------------------------------------- (97) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Pos(Zero), Pos(Succ(x0)), Integer(Pos(Zero)), Pos(Zero)) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(x0)), Pos(new_primModNatS1(Zero, x0))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (98) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (99) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (100) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0))))) ---------------------------------------- (101) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (102) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (103) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (104) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (105) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (106) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))),new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1)))) ---------------------------------------- (107) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (108) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))),new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero)))) ---------------------------------------- (109) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (110) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) ---------------------------------------- (111) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (112) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (113) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (114) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (115) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (116) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (117) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (118) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Neg(x0), Pos(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0))))) (new_quot1(y0, Neg(Zero), Pos(Succ(x0)), Integer(Pos(Zero)), Neg(Zero)) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(x0)), Neg(new_primModNatS1(Zero, x0))),new_quot1(y0, Neg(Zero), Pos(Succ(x0)), Integer(Pos(Zero)), Neg(Zero)) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(x0)), Neg(new_primModNatS1(Zero, x0)))) (new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) (new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))),new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1))))) ---------------------------------------- (119) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Neg(Zero), Pos(Succ(x0)), Integer(Pos(Zero)), Neg(Zero)) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(x0)), Neg(new_primModNatS1(Zero, x0))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (120) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (121) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (122) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0))))) ---------------------------------------- (123) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (124) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (125) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (126) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (127) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (128) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))),new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1)))) ---------------------------------------- (129) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (130) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))),new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero)))) ---------------------------------------- (131) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (132) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) ---------------------------------------- (133) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (134) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (135) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (136) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (137) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (138) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (139) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (140) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Neg(x0), Neg(Succ(x1)), Integer(Pos(Zero)), Neg(x0)) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0))))) (new_quot1(y0, Neg(Zero), Neg(Succ(x0)), Integer(Pos(Zero)), Neg(Zero)) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(x0)), Neg(new_primModNatS1(Zero, x0))),new_quot1(y0, Neg(Zero), Neg(Succ(x0)), Integer(Pos(Zero)), Neg(Zero)) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(x0)), Neg(new_primModNatS1(Zero, x0)))) (new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) (new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))),new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1))))) ---------------------------------------- (141) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Neg(Zero), Neg(Succ(x0)), Integer(Pos(Zero)), Neg(Zero)) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(x0)), Neg(new_primModNatS1(Zero, x0))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (142) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (143) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (144) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))),new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0))))) ---------------------------------------- (145) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (146) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (147) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (148) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (149) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (150) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(x1)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))),new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1)))) ---------------------------------------- (151) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (152) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(new_primModNatS1(Succ(Zero), Succ(x0)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))),new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero)))) ---------------------------------------- (153) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (154) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) ---------------------------------------- (155) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (156) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (157) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (158) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (159) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (160) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (161) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (162) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3))))) (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2))))) ---------------------------------------- (163) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (164) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (165) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (166) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) ---------------------------------------- (167) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (168) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (169) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (170) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2))))) ---------------------------------------- (171) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (172) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (173) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (174) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (175) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (176) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (177) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (178) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (179) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (180) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (181) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (182) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero)))) ---------------------------------------- (183) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (184) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (185) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (186) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (187) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (188) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (189) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (190) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (191) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (192) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (193) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (194) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (195) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (196) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (197) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (198) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (199) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (200) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) ---------------------------------------- (201) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (202) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (203) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (204) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (205) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (206) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (207) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (208) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3))))) (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2))))) ---------------------------------------- (209) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (210) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (211) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (212) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) ---------------------------------------- (213) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (214) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (215) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (216) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2))))) ---------------------------------------- (217) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (218) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (219) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (220) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (221) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (222) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (223) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (224) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (225) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (226) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (227) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (228) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero)))) ---------------------------------------- (229) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (230) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (231) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (232) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (233) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (234) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (235) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (236) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (237) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (238) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (239) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (240) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (241) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (242) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (243) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (244) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (245) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (246) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) ---------------------------------------- (247) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (248) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (249) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (250) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (251) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (252) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (253) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (254) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3))))) (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2))))) ---------------------------------------- (255) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (256) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (257) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (258) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) ---------------------------------------- (259) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (260) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (261) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (262) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2))))) ---------------------------------------- (263) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (264) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (265) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (266) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (267) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (268) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (269) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (270) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (271) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (272) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (273) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (274) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero)))) ---------------------------------------- (275) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (276) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (277) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (278) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (279) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (280) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (281) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (282) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (283) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (284) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (285) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (286) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (287) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (288) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (289) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (290) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (291) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (292) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) ---------------------------------------- (293) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (294) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (295) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (296) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (297) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (298) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (299) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (300) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1))), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3))))) (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2))))) ---------------------------------------- (301) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (302) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (303) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (304) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) ---------------------------------------- (305) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (306) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (307) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (308) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2))))) ---------------------------------------- (309) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (310) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (311) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (312) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (313) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (314) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(new_primModNatS02(Zero, Succ(x2), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (315) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (316) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero)))) ---------------------------------------- (317) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (318) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (319) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (320) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero, Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero)))) ---------------------------------------- (321) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (322) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) ---------------------------------------- (323) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (324) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (325) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (326) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (327) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (328) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (329) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (330) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (331) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (332) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(x0))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(x0)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (333) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (334) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (335) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (336) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (337) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (338) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) ---------------------------------------- (339) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (340) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (341) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (342) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (343) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (344) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (345) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (346) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3))))) (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) ---------------------------------------- (347) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (348) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (349) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (350) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) ---------------------------------------- (351) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (352) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (353) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (354) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) ---------------------------------------- (355) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (356) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (357) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (358) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (359) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (360) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (361) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (362) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (363) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (364) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (365) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (366) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (367) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (368) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (369) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (370) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) ---------------------------------------- (371) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (372) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (373) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) 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_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (376) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (377) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (378) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (379) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (380) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (381) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (382) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (383) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (384) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero))))) (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero))))) ---------------------------------------- (385) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (386) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero))))) ---------------------------------------- (387) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (388) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero)))) ---------------------------------------- (389) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (390) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) ---------------------------------------- (391) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (392) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (393) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (394) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (395) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (396) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (397) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (398) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) ---------------------------------------- (399) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (400) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (401) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (402) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (403) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (404) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (405) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (406) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3))))) (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) ---------------------------------------- (407) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (408) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (409) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (410) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) ---------------------------------------- (411) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (412) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (413) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (414) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) ---------------------------------------- (415) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (416) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (417) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (418) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (419) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (420) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (421) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (422) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (423) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (424) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (425) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (426) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (427) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (428) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (429) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (430) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) ---------------------------------------- (431) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (432) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (433) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (434) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (435) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (436) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (437) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (438) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (439) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (440) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (441) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (442) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (443) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (444) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero))))) (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero))))) ---------------------------------------- (445) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (446) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero))))) ---------------------------------------- (447) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (448) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero)))) ---------------------------------------- (449) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (450) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) ---------------------------------------- (451) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (452) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (453) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (454) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (455) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (456) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (457) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (458) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) ---------------------------------------- (459) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (460) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (461) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) 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_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (464) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (465) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (466) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3))))) (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) ---------------------------------------- (467) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (468) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (469) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (470) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) ---------------------------------------- (471) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (472) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (473) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (474) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) ---------------------------------------- (475) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (476) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (477) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (478) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (479) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (480) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (481) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (482) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (483) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (484) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (485) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (486) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (487) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (488) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (489) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (490) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) ---------------------------------------- (491) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (492) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (493) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (494) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (495) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (496) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (497) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (498) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (499) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (500) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (501) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (502) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (503) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (504) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero))))) (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero))))) ---------------------------------------- (505) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (506) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero))))) ---------------------------------------- (507) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (508) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero)))) ---------------------------------------- (509) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (510) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) ---------------------------------------- (511) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (512) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (513) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (514) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (515) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (516) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (517) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (518) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) ---------------------------------------- (519) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (520) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (521) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (522) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (523) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (524) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (525) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (526) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3))))) (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) ---------------------------------------- (527) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (528) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (529) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (530) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), Succ(x2), Succ(x3)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) ---------------------------------------- (531) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (532) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (533) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (534) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2))))) ---------------------------------------- (535) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (536) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (537) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (538) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (539) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (540) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x2)), Zero, Succ(x2)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (541) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (542) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (543) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (544) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (545) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (546) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero)))) ---------------------------------------- (547) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (548) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (549) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (550) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Zero), Succ(x2), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) ---------------------------------------- (551) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (552) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero)))) ---------------------------------------- (553) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (554) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (555) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (556) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (557) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (558) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (559) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (560) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (561) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (562) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (563) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (564) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x2))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero))))) (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero))))) ---------------------------------------- (565) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (566) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero))))) ---------------------------------------- (567) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (568) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Succ(x0)), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero)))) ---------------------------------------- (569) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (570) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) ---------------------------------------- (571) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (572) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (573) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (574) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero)))) ---------------------------------------- (575) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (576) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (577) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (578) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Succ(x0)), Zero))) at position [3,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) ---------------------------------------- (579) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (580) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero)))) ---------------------------------------- (581) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (582) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (583) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (584) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [3,0,0] we obtained the following new rules [LPAR04]: (new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (585) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (586) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(False) = 0 POL(Integer(x_1)) = 0 POL(Neg(x_1)) = x_1 POL(Pos(x_1)) = 0 POL(Succ(x_1)) = 1 POL(True) = 1 POL(Zero) = 0 POL(new_primEqInt(x_1, x_2)) = 0 POL(new_primMinusNatS0(x_1, x_2)) = 0 POL(new_primModNatS01(x_1, x_2)) = 1 POL(new_primModNatS02(x_1, x_2, x_3, x_4)) = 1 POL(new_primModNatS1(x_1, x_2)) = x_2 POL(new_quot1(x_1, x_2, x_3, x_4, x_5)) = x_2 + x_3 POL(new_quot2(x_1, x_2, x_3, x_4)) = x_3 + x_4 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Zero, vuz6800) -> Zero ---------------------------------------- (587) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (588) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero)), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(False) = 0 POL(Integer(x_1)) = 0 POL(Neg(x_1)) = 0 POL(Pos(x_1)) = x_1 POL(Succ(x_1)) = 1 POL(True) = 1 POL(Zero) = 0 POL(new_primEqInt(x_1, x_2)) = 0 POL(new_primMinusNatS0(x_1, x_2)) = 0 POL(new_primModNatS01(x_1, x_2)) = 1 POL(new_primModNatS02(x_1, x_2, x_3, x_4)) = 1 POL(new_primModNatS1(x_1, x_2)) = x_2 POL(new_quot1(x_1, x_2, x_3, x_4, x_5)) = x_3 + x_5 POL(new_quot2(x_1, x_2, x_3, x_4)) = x_3 + x_4 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Zero, vuz6800) -> Zero ---------------------------------------- (589) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (590) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) the following chains were created: *We consider the chain new_quot2(x3, False, x4, x5) -> new_quot1(x3, x4, x5, Integer(Pos(Zero)), x4), new_quot1(x6, Pos(Succ(Zero)), Neg(Succ(Succ(x7))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(x6, False, Neg(Succ(Succ(x7))), Pos(Succ(Zero))) which results in the following constraint: (1) (new_quot1(x3, x4, x5, Integer(Pos(Zero)), x4)=new_quot1(x6, Pos(Succ(Zero)), Neg(Succ(Succ(x7))), Integer(Pos(Zero)), Pos(Succ(Zero))) ==> new_quot2(x3, False, x4, x5)_>=_new_quot1(x3, x4, x5, Integer(Pos(Zero)), x4)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x3, False, Pos(Succ(Zero)), Neg(Succ(Succ(x7))))_>=_new_quot1(x3, Pos(Succ(Zero)), Neg(Succ(Succ(x7))), Integer(Pos(Zero)), Pos(Succ(Zero)))) *We consider the chain new_quot2(x8, False, x9, x10) -> new_quot1(x8, x9, x10, Integer(Pos(Zero)), x9), new_quot1(x11, Pos(Succ(Zero)), Pos(Succ(Succ(x12))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(x11, False, Pos(Succ(Succ(x12))), Pos(Succ(Zero))) which results in the following constraint: (1) (new_quot1(x8, x9, x10, Integer(Pos(Zero)), x9)=new_quot1(x11, Pos(Succ(Zero)), Pos(Succ(Succ(x12))), Integer(Pos(Zero)), Pos(Succ(Zero))) ==> new_quot2(x8, False, x9, x10)_>=_new_quot1(x8, x9, x10, Integer(Pos(Zero)), x9)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x8, False, Pos(Succ(Zero)), Pos(Succ(Succ(x12))))_>=_new_quot1(x8, Pos(Succ(Zero)), Pos(Succ(Succ(x12))), Integer(Pos(Zero)), Pos(Succ(Zero)))) *We consider the chain new_quot2(x13, False, x14, x15) -> new_quot1(x13, x14, x15, Integer(Pos(Zero)), x14), new_quot1(x16, Neg(Succ(Zero)), Pos(Succ(Succ(x17))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(x16, False, Pos(Succ(Succ(x17))), Neg(Succ(Zero))) which results in the following constraint: (1) (new_quot1(x13, x14, x15, Integer(Pos(Zero)), x14)=new_quot1(x16, Neg(Succ(Zero)), Pos(Succ(Succ(x17))), Integer(Pos(Zero)), Neg(Succ(Zero))) ==> new_quot2(x13, False, x14, x15)_>=_new_quot1(x13, x14, x15, Integer(Pos(Zero)), x14)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x13, False, Neg(Succ(Zero)), Pos(Succ(Succ(x17))))_>=_new_quot1(x13, Neg(Succ(Zero)), Pos(Succ(Succ(x17))), Integer(Pos(Zero)), Neg(Succ(Zero)))) *We consider the chain new_quot2(x18, False, x19, x20) -> new_quot1(x18, x19, x20, Integer(Pos(Zero)), x19), new_quot1(x21, Neg(Succ(Zero)), Neg(Succ(Succ(x22))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(x21, False, Neg(Succ(Succ(x22))), Neg(Succ(Zero))) which results in the following constraint: (1) (new_quot1(x18, x19, x20, Integer(Pos(Zero)), x19)=new_quot1(x21, Neg(Succ(Zero)), Neg(Succ(Succ(x22))), Integer(Pos(Zero)), Neg(Succ(Zero))) ==> new_quot2(x18, False, x19, x20)_>=_new_quot1(x18, x19, x20, Integer(Pos(Zero)), x19)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x18, False, Neg(Succ(Zero)), Neg(Succ(Succ(x22))))_>=_new_quot1(x18, Neg(Succ(Zero)), Neg(Succ(Succ(x22))), Integer(Pos(Zero)), Neg(Succ(Zero)))) *We consider the chain new_quot2(x23, False, x24, x25) -> new_quot1(x23, x24, x25, Integer(Pos(Zero)), x24), new_quot1(x26, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x27)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(x26, False, Neg(Succ(Succ(Succ(x27)))), Pos(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_quot1(x23, x24, x25, Integer(Pos(Zero)), x24)=new_quot1(x26, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x27)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) ==> new_quot2(x23, False, x24, x25)_>=_new_quot1(x23, x24, x25, Integer(Pos(Zero)), x24)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x23, False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x27)))))_>=_new_quot1(x23, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x27)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))) *We consider the chain new_quot2(x28, False, x29, x30) -> new_quot1(x28, x29, x30, Integer(Pos(Zero)), x29), new_quot1(x31, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x32)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(x31, False, Pos(Succ(Succ(Succ(x32)))), Pos(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_quot1(x28, x29, x30, Integer(Pos(Zero)), x29)=new_quot1(x31, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x32)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) ==> new_quot2(x28, False, x29, x30)_>=_new_quot1(x28, x29, x30, Integer(Pos(Zero)), x29)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x28, False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x32)))))_>=_new_quot1(x28, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x32)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))) *We consider the chain new_quot2(x33, False, x34, x35) -> new_quot1(x33, x34, x35, Integer(Pos(Zero)), x34), new_quot1(x36, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x37)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(x36, False, Pos(Succ(Succ(Succ(x37)))), Neg(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_quot1(x33, x34, x35, Integer(Pos(Zero)), x34)=new_quot1(x36, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x37)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) ==> new_quot2(x33, False, x34, x35)_>=_new_quot1(x33, x34, x35, Integer(Pos(Zero)), x34)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x33, False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x37)))))_>=_new_quot1(x33, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x37)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))) *We consider the chain new_quot2(x38, False, x39, x40) -> new_quot1(x38, x39, x40, Integer(Pos(Zero)), x39), new_quot1(x41, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x42)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(x41, False, Neg(Succ(Succ(Succ(x42)))), Neg(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_quot1(x38, x39, x40, Integer(Pos(Zero)), x39)=new_quot1(x41, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x42)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) ==> new_quot2(x38, False, x39, x40)_>=_new_quot1(x38, x39, x40, Integer(Pos(Zero)), x39)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x38, False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x42)))))_>=_new_quot1(x38, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x42)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))) *We consider the chain new_quot2(x43, False, x44, x45) -> new_quot1(x43, x44, x45, Integer(Pos(Zero)), x44), new_quot1(x46, Pos(Succ(Succ(Succ(Succ(x47))))), Neg(Succ(Succ(Succ(Succ(x48))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x47)))))) -> new_quot2(x46, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x47)), Succ(Succ(x48)), x47, x48)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x48))))), Pos(new_primModNatS02(Succ(Succ(x47)), Succ(Succ(x48)), x47, x48))) which results in the following constraint: (1) (new_quot1(x43, x44, x45, Integer(Pos(Zero)), x44)=new_quot1(x46, Pos(Succ(Succ(Succ(Succ(x47))))), Neg(Succ(Succ(Succ(Succ(x48))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x47)))))) ==> new_quot2(x43, False, x44, x45)_>=_new_quot1(x43, x44, x45, Integer(Pos(Zero)), x44)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x43, False, Pos(Succ(Succ(Succ(Succ(x47))))), Neg(Succ(Succ(Succ(Succ(x48))))))_>=_new_quot1(x43, Pos(Succ(Succ(Succ(Succ(x47))))), Neg(Succ(Succ(Succ(Succ(x48))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x47))))))) *We consider the chain new_quot2(x49, False, x50, x51) -> new_quot1(x49, x50, x51, Integer(Pos(Zero)), x50), new_quot1(x52, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x53))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(x52, False, Neg(Succ(Succ(Succ(Succ(x53))))), Pos(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_quot1(x49, x50, x51, Integer(Pos(Zero)), x50)=new_quot1(x52, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x53))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) ==> new_quot2(x49, False, x50, x51)_>=_new_quot1(x49, x50, x51, Integer(Pos(Zero)), x50)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x49, False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x53))))))_>=_new_quot1(x49, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x53))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) *We consider the chain new_quot2(x54, False, x55, x56) -> new_quot1(x54, x55, x56, Integer(Pos(Zero)), x55), new_quot1(x57, Pos(Succ(Succ(Succ(Succ(x58))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x58)))))) -> new_quot2(x57, new_primEqInt(Pos(new_primModNatS1(Succ(x58), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x58), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_quot1(x54, x55, x56, Integer(Pos(Zero)), x55)=new_quot1(x57, Pos(Succ(Succ(Succ(Succ(x58))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x58)))))) ==> new_quot2(x54, False, x55, x56)_>=_new_quot1(x54, x55, x56, Integer(Pos(Zero)), x55)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x54, False, Pos(Succ(Succ(Succ(Succ(x58))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x54, Pos(Succ(Succ(Succ(Succ(x58))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x58))))))) *We consider the chain new_quot2(x59, False, x60, x61) -> new_quot1(x59, x60, x61, Integer(Pos(Zero)), x60), new_quot1(x62, Pos(Succ(Succ(Succ(Succ(x63))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x63)))))) -> new_quot2(x62, new_primEqInt(Pos(new_primModNatS02(x63, Zero, x63, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x63, Zero, x63, Zero))) which results in the following constraint: (1) (new_quot1(x59, x60, x61, Integer(Pos(Zero)), x60)=new_quot1(x62, Pos(Succ(Succ(Succ(Succ(x63))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x63)))))) ==> new_quot2(x59, False, x60, x61)_>=_new_quot1(x59, x60, x61, Integer(Pos(Zero)), x60)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x59, False, Pos(Succ(Succ(Succ(Succ(x63))))), Neg(Succ(Succ(Zero))))_>=_new_quot1(x59, Pos(Succ(Succ(Succ(Succ(x63))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x63))))))) *We consider the chain new_quot2(x64, False, x65, x66) -> new_quot1(x64, x65, x66, Integer(Pos(Zero)), x65), new_quot1(x67, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(x67, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) which results in the following constraint: (1) (new_quot1(x64, x65, x66, Integer(Pos(Zero)), x65)=new_quot1(x67, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) ==> new_quot2(x64, False, x65, x66)_>=_new_quot1(x64, x65, x66, Integer(Pos(Zero)), x65)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x64, False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_quot1(x64, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) *We consider the chain new_quot2(x68, False, x69, x70) -> new_quot1(x68, x69, x70, Integer(Pos(Zero)), x69), new_quot1(x71, Pos(Succ(Succ(Succ(Succ(x72))))), Pos(Succ(Succ(Succ(Succ(x73))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x72)))))) -> new_quot2(x71, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x72)), Succ(Succ(x73)), x72, x73)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x73))))), Pos(new_primModNatS02(Succ(Succ(x72)), Succ(Succ(x73)), x72, x73))) which results in the following constraint: (1) (new_quot1(x68, x69, x70, Integer(Pos(Zero)), x69)=new_quot1(x71, Pos(Succ(Succ(Succ(Succ(x72))))), Pos(Succ(Succ(Succ(Succ(x73))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x72)))))) ==> new_quot2(x68, False, x69, x70)_>=_new_quot1(x68, x69, x70, Integer(Pos(Zero)), x69)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x68, False, Pos(Succ(Succ(Succ(Succ(x72))))), Pos(Succ(Succ(Succ(Succ(x73))))))_>=_new_quot1(x68, Pos(Succ(Succ(Succ(Succ(x72))))), Pos(Succ(Succ(Succ(Succ(x73))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x72))))))) *We consider the chain new_quot2(x74, False, x75, x76) -> new_quot1(x74, x75, x76, Integer(Pos(Zero)), x75), new_quot1(x77, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x78))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(x77, False, Pos(Succ(Succ(Succ(Succ(x78))))), Pos(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_quot1(x74, x75, x76, Integer(Pos(Zero)), x75)=new_quot1(x77, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x78))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) ==> new_quot2(x74, False, x75, x76)_>=_new_quot1(x74, x75, x76, Integer(Pos(Zero)), x75)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x74, False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x78))))))_>=_new_quot1(x74, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x78))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) *We consider the chain new_quot2(x79, False, x80, x81) -> new_quot1(x79, x80, x81, Integer(Pos(Zero)), x80), new_quot1(x82, Pos(Succ(Succ(Succ(Succ(x83))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x83)))))) -> new_quot2(x82, new_primEqInt(Pos(new_primModNatS1(Succ(x83), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x83), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_quot1(x79, x80, x81, Integer(Pos(Zero)), x80)=new_quot1(x82, Pos(Succ(Succ(Succ(Succ(x83))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x83)))))) ==> new_quot2(x79, False, x80, x81)_>=_new_quot1(x79, x80, x81, Integer(Pos(Zero)), x80)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x79, False, Pos(Succ(Succ(Succ(Succ(x83))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x79, Pos(Succ(Succ(Succ(Succ(x83))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x83))))))) *We consider the chain new_quot2(x84, False, x85, x86) -> new_quot1(x84, x85, x86, Integer(Pos(Zero)), x85), new_quot1(x87, Pos(Succ(Succ(Succ(Succ(x88))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x88)))))) -> new_quot2(x87, new_primEqInt(Pos(new_primModNatS02(x88, Zero, x88, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x88, Zero, x88, Zero))) which results in the following constraint: (1) (new_quot1(x84, x85, x86, Integer(Pos(Zero)), x85)=new_quot1(x87, Pos(Succ(Succ(Succ(Succ(x88))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x88)))))) ==> new_quot2(x84, False, x85, x86)_>=_new_quot1(x84, x85, x86, Integer(Pos(Zero)), x85)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x84, False, Pos(Succ(Succ(Succ(Succ(x88))))), Pos(Succ(Succ(Zero))))_>=_new_quot1(x84, Pos(Succ(Succ(Succ(Succ(x88))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x88))))))) *We consider the chain new_quot2(x89, False, x90, x91) -> new_quot1(x89, x90, x91, Integer(Pos(Zero)), x90), new_quot1(x92, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(x92, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) which results in the following constraint: (1) (new_quot1(x89, x90, x91, Integer(Pos(Zero)), x90)=new_quot1(x92, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) ==> new_quot2(x89, False, x90, x91)_>=_new_quot1(x89, x90, x91, Integer(Pos(Zero)), x90)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x89, False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_quot1(x89, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) *We consider the chain new_quot2(x93, False, x94, x95) -> new_quot1(x93, x94, x95, Integer(Pos(Zero)), x94), new_quot1(x96, Neg(Succ(Succ(Succ(Succ(x97))))), Pos(Succ(Succ(Succ(Succ(x98))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x97)))))) -> new_quot2(x96, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x97)), Succ(Succ(x98)), x97, x98)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x98))))), Neg(new_primModNatS02(Succ(Succ(x97)), Succ(Succ(x98)), x97, x98))) which results in the following constraint: (1) (new_quot1(x93, x94, x95, Integer(Pos(Zero)), x94)=new_quot1(x96, Neg(Succ(Succ(Succ(Succ(x97))))), Pos(Succ(Succ(Succ(Succ(x98))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x97)))))) ==> new_quot2(x93, False, x94, x95)_>=_new_quot1(x93, x94, x95, Integer(Pos(Zero)), x94)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x93, False, Neg(Succ(Succ(Succ(Succ(x97))))), Pos(Succ(Succ(Succ(Succ(x98))))))_>=_new_quot1(x93, Neg(Succ(Succ(Succ(Succ(x97))))), Pos(Succ(Succ(Succ(Succ(x98))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x97))))))) *We consider the chain new_quot2(x99, False, x100, x101) -> new_quot1(x99, x100, x101, Integer(Pos(Zero)), x100), new_quot1(x102, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(x102, False, Pos(Succ(Succ(Succ(Succ(x103))))), Neg(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_quot1(x99, x100, x101, Integer(Pos(Zero)), x100)=new_quot1(x102, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) ==> new_quot2(x99, False, x100, x101)_>=_new_quot1(x99, x100, x101, Integer(Pos(Zero)), x100)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x99, False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))))_>=_new_quot1(x99, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) *We consider the chain new_quot2(x104, False, x105, x106) -> new_quot1(x104, x105, x106, Integer(Pos(Zero)), x105), new_quot1(x107, Neg(Succ(Succ(Succ(Succ(x108))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x108)))))) -> new_quot2(x107, new_primEqInt(Neg(new_primModNatS1(Succ(x108), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x108), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_quot1(x104, x105, x106, Integer(Pos(Zero)), x105)=new_quot1(x107, Neg(Succ(Succ(Succ(Succ(x108))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x108)))))) ==> new_quot2(x104, False, x105, x106)_>=_new_quot1(x104, x105, x106, Integer(Pos(Zero)), x105)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x104, False, Neg(Succ(Succ(Succ(Succ(x108))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x104, Neg(Succ(Succ(Succ(Succ(x108))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x108))))))) *We consider the chain new_quot2(x109, False, x110, x111) -> new_quot1(x109, x110, x111, Integer(Pos(Zero)), x110), new_quot1(x112, Neg(Succ(Succ(Succ(Succ(x113))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x113)))))) -> new_quot2(x112, new_primEqInt(Neg(new_primModNatS02(x113, Zero, x113, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x113, Zero, x113, Zero))) which results in the following constraint: (1) (new_quot1(x109, x110, x111, Integer(Pos(Zero)), x110)=new_quot1(x112, Neg(Succ(Succ(Succ(Succ(x113))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x113)))))) ==> new_quot2(x109, False, x110, x111)_>=_new_quot1(x109, x110, x111, Integer(Pos(Zero)), x110)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x109, False, Neg(Succ(Succ(Succ(Succ(x113))))), Pos(Succ(Succ(Zero))))_>=_new_quot1(x109, Neg(Succ(Succ(Succ(Succ(x113))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x113))))))) *We consider the chain new_quot2(x114, False, x115, x116) -> new_quot1(x114, x115, x116, Integer(Pos(Zero)), x115), new_quot1(x117, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(x117, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) which results in the following constraint: (1) (new_quot1(x114, x115, x116, Integer(Pos(Zero)), x115)=new_quot1(x117, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) ==> new_quot2(x114, False, x115, x116)_>=_new_quot1(x114, x115, x116, Integer(Pos(Zero)), x115)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x114, False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_quot1(x114, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) *We consider the chain new_quot2(x118, False, x119, x120) -> new_quot1(x118, x119, x120, Integer(Pos(Zero)), x119), new_quot1(x121, Neg(Succ(Succ(Succ(Succ(x122))))), Neg(Succ(Succ(Succ(Succ(x123))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x122)))))) -> new_quot2(x121, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x122)), Succ(Succ(x123)), x122, x123)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x123))))), Neg(new_primModNatS02(Succ(Succ(x122)), Succ(Succ(x123)), x122, x123))) which results in the following constraint: (1) (new_quot1(x118, x119, x120, Integer(Pos(Zero)), x119)=new_quot1(x121, Neg(Succ(Succ(Succ(Succ(x122))))), Neg(Succ(Succ(Succ(Succ(x123))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x122)))))) ==> new_quot2(x118, False, x119, x120)_>=_new_quot1(x118, x119, x120, Integer(Pos(Zero)), x119)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x118, False, Neg(Succ(Succ(Succ(Succ(x122))))), Neg(Succ(Succ(Succ(Succ(x123))))))_>=_new_quot1(x118, Neg(Succ(Succ(Succ(Succ(x122))))), Neg(Succ(Succ(Succ(Succ(x123))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x122))))))) *We consider the chain new_quot2(x124, False, x125, x126) -> new_quot1(x124, x125, x126, Integer(Pos(Zero)), x125), new_quot1(x127, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x128))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(x127, False, Neg(Succ(Succ(Succ(Succ(x128))))), Neg(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_quot1(x124, x125, x126, Integer(Pos(Zero)), x125)=new_quot1(x127, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x128))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) ==> new_quot2(x124, False, x125, x126)_>=_new_quot1(x124, x125, x126, Integer(Pos(Zero)), x125)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x124, False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x128))))))_>=_new_quot1(x124, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x128))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) *We consider the chain new_quot2(x129, False, x130, x131) -> new_quot1(x129, x130, x131, Integer(Pos(Zero)), x130), new_quot1(x132, Neg(Succ(Succ(Succ(Succ(x133))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x133)))))) -> new_quot2(x132, new_primEqInt(Neg(new_primModNatS1(Succ(x133), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x133), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_quot1(x129, x130, x131, Integer(Pos(Zero)), x130)=new_quot1(x132, Neg(Succ(Succ(Succ(Succ(x133))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x133)))))) ==> new_quot2(x129, False, x130, x131)_>=_new_quot1(x129, x130, x131, Integer(Pos(Zero)), x130)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x129, False, Neg(Succ(Succ(Succ(Succ(x133))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x129, Neg(Succ(Succ(Succ(Succ(x133))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x133))))))) *We consider the chain new_quot2(x134, False, x135, x136) -> new_quot1(x134, x135, x136, Integer(Pos(Zero)), x135), new_quot1(x137, Neg(Succ(Succ(Succ(Succ(x138))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x138)))))) -> new_quot2(x137, new_primEqInt(Neg(new_primModNatS02(x138, Zero, x138, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x138, Zero, x138, Zero))) which results in the following constraint: (1) (new_quot1(x134, x135, x136, Integer(Pos(Zero)), x135)=new_quot1(x137, Neg(Succ(Succ(Succ(Succ(x138))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x138)))))) ==> new_quot2(x134, False, x135, x136)_>=_new_quot1(x134, x135, x136, Integer(Pos(Zero)), x135)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x134, False, Neg(Succ(Succ(Succ(Succ(x138))))), Neg(Succ(Succ(Zero))))_>=_new_quot1(x134, Neg(Succ(Succ(Succ(Succ(x138))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x138))))))) *We consider the chain new_quot2(x139, False, x140, x141) -> new_quot1(x139, x140, x141, Integer(Pos(Zero)), x140), new_quot1(x142, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(x142, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) which results in the following constraint: (1) (new_quot1(x139, x140, x141, Integer(Pos(Zero)), x140)=new_quot1(x142, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) ==> new_quot2(x139, False, x140, x141)_>=_new_quot1(x139, x140, x141, Integer(Pos(Zero)), x140)) We simplified constraint (1) using rules (I), (II), (III), (IV) which results in the following new constraint: (2) (new_quot2(x139, False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_quot1(x139, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) For Pair new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) the following chains were created: *We consider the chain new_quot1(x143, Pos(Succ(Zero)), Neg(Succ(Succ(x144))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(x143, False, Neg(Succ(Succ(x144))), Pos(Succ(Zero))), new_quot2(x145, False, x146, x147) -> new_quot1(x145, x146, x147, Integer(Pos(Zero)), x146) which results in the following constraint: (1) (new_quot2(x143, False, Neg(Succ(Succ(x144))), Pos(Succ(Zero)))=new_quot2(x145, False, x146, x147) ==> new_quot1(x143, Pos(Succ(Zero)), Neg(Succ(Succ(x144))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x143, False, Neg(Succ(Succ(x144))), Pos(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x143, Pos(Succ(Zero)), Neg(Succ(Succ(x144))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x143, False, Neg(Succ(Succ(x144))), Pos(Succ(Zero)))) For Pair new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) the following chains were created: *We consider the chain new_quot1(x204, Pos(Succ(Zero)), Pos(Succ(Succ(x205))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(x204, False, Pos(Succ(Succ(x205))), Pos(Succ(Zero))), new_quot2(x206, False, x207, x208) -> new_quot1(x206, x207, x208, Integer(Pos(Zero)), x207) which results in the following constraint: (1) (new_quot2(x204, False, Pos(Succ(Succ(x205))), Pos(Succ(Zero)))=new_quot2(x206, False, x207, x208) ==> new_quot1(x204, Pos(Succ(Zero)), Pos(Succ(Succ(x205))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x204, False, Pos(Succ(Succ(x205))), Pos(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x204, Pos(Succ(Zero)), Pos(Succ(Succ(x205))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x204, False, Pos(Succ(Succ(x205))), Pos(Succ(Zero)))) For Pair new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) the following chains were created: *We consider the chain new_quot1(x265, Neg(Succ(Zero)), Pos(Succ(Succ(x266))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(x265, False, Pos(Succ(Succ(x266))), Neg(Succ(Zero))), new_quot2(x267, False, x268, x269) -> new_quot1(x267, x268, x269, Integer(Pos(Zero)), x268) which results in the following constraint: (1) (new_quot2(x265, False, Pos(Succ(Succ(x266))), Neg(Succ(Zero)))=new_quot2(x267, False, x268, x269) ==> new_quot1(x265, Neg(Succ(Zero)), Pos(Succ(Succ(x266))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x265, False, Pos(Succ(Succ(x266))), Neg(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x265, Neg(Succ(Zero)), Pos(Succ(Succ(x266))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x265, False, Pos(Succ(Succ(x266))), Neg(Succ(Zero)))) For Pair new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) the following chains were created: *We consider the chain new_quot1(x326, Neg(Succ(Zero)), Neg(Succ(Succ(x327))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(x326, False, Neg(Succ(Succ(x327))), Neg(Succ(Zero))), new_quot2(x328, False, x329, x330) -> new_quot1(x328, x329, x330, Integer(Pos(Zero)), x329) which results in the following constraint: (1) (new_quot2(x326, False, Neg(Succ(Succ(x327))), Neg(Succ(Zero)))=new_quot2(x328, False, x329, x330) ==> new_quot1(x326, Neg(Succ(Zero)), Neg(Succ(Succ(x327))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x326, False, Neg(Succ(Succ(x327))), Neg(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x326, Neg(Succ(Zero)), Neg(Succ(Succ(x327))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x326, False, Neg(Succ(Succ(x327))), Neg(Succ(Zero)))) For Pair new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_quot1(x387, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x388)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(x387, False, Neg(Succ(Succ(Succ(x388)))), Pos(Succ(Succ(Zero)))), new_quot2(x389, False, x390, x391) -> new_quot1(x389, x390, x391, Integer(Pos(Zero)), x390) which results in the following constraint: (1) (new_quot2(x387, False, Neg(Succ(Succ(Succ(x388)))), Pos(Succ(Succ(Zero))))=new_quot2(x389, False, x390, x391) ==> new_quot1(x387, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x388)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))_>=_new_quot2(x387, False, Neg(Succ(Succ(Succ(x388)))), Pos(Succ(Succ(Zero))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x387, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x388)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))_>=_new_quot2(x387, False, Neg(Succ(Succ(Succ(x388)))), Pos(Succ(Succ(Zero))))) For Pair new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_quot1(x448, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x449)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(x448, False, Pos(Succ(Succ(Succ(x449)))), Pos(Succ(Succ(Zero)))), new_quot2(x450, False, x451, x452) -> new_quot1(x450, x451, x452, Integer(Pos(Zero)), x451) which results in the following constraint: (1) (new_quot2(x448, False, Pos(Succ(Succ(Succ(x449)))), Pos(Succ(Succ(Zero))))=new_quot2(x450, False, x451, x452) ==> new_quot1(x448, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x449)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))_>=_new_quot2(x448, False, Pos(Succ(Succ(Succ(x449)))), Pos(Succ(Succ(Zero))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x448, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x449)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))_>=_new_quot2(x448, False, Pos(Succ(Succ(Succ(x449)))), Pos(Succ(Succ(Zero))))) For Pair new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_quot1(x509, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x510)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(x509, False, Pos(Succ(Succ(Succ(x510)))), Neg(Succ(Succ(Zero)))), new_quot2(x511, False, x512, x513) -> new_quot1(x511, x512, x513, Integer(Pos(Zero)), x512) which results in the following constraint: (1) (new_quot2(x509, False, Pos(Succ(Succ(Succ(x510)))), Neg(Succ(Succ(Zero))))=new_quot2(x511, False, x512, x513) ==> new_quot1(x509, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x510)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))_>=_new_quot2(x509, False, Pos(Succ(Succ(Succ(x510)))), Neg(Succ(Succ(Zero))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x509, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x510)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))_>=_new_quot2(x509, False, Pos(Succ(Succ(Succ(x510)))), Neg(Succ(Succ(Zero))))) For Pair new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_quot1(x570, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x571)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(x570, False, Neg(Succ(Succ(Succ(x571)))), Neg(Succ(Succ(Zero)))), new_quot2(x572, False, x573, x574) -> new_quot1(x572, x573, x574, Integer(Pos(Zero)), x573) which results in the following constraint: (1) (new_quot2(x570, False, Neg(Succ(Succ(Succ(x571)))), Neg(Succ(Succ(Zero))))=new_quot2(x572, False, x573, x574) ==> new_quot1(x570, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x571)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))_>=_new_quot2(x570, False, Neg(Succ(Succ(Succ(x571)))), Neg(Succ(Succ(Zero))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x570, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x571)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))_>=_new_quot2(x570, False, Neg(Succ(Succ(Succ(x571)))), Neg(Succ(Succ(Zero))))) For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: *We consider the chain new_quot1(x631, Pos(Succ(Succ(Succ(Succ(x632))))), Neg(Succ(Succ(Succ(Succ(x633))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x632)))))) -> new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633))), new_quot2(x634, False, x635, x636) -> new_quot1(x634, x635, x636, Integer(Pos(Zero)), x635) which results in the following constraint: (1) (new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)))=new_quot2(x634, False, x635, x636) ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(x632))))), Neg(Succ(Succ(Succ(Succ(x633))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x632))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633))=x1851 & Pos(Zero)=x1852 & new_primEqInt(x1851, x1852)=False ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(x632))))), Neg(Succ(Succ(Succ(Succ(x633))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x632))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x1851, x1852)=False which results in the following new constraints: (3) (False=False & Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633))=Neg(Succ(x1854)) & Pos(Zero)=Pos(x1853) ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(x632))))), Neg(Succ(Succ(Succ(Succ(x633))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x632))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)))) (4) (False=False & Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633))=Pos(Succ(x1855)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(x632))))), Neg(Succ(Succ(Succ(Succ(x633))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x632))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (VII) which results in the following new constraint: (5) (Succ(Succ(x632))=x1856 & Succ(Succ(x633))=x1857 & new_primModNatS02(x1856, x1857, x632, x633)=Succ(x1855) ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(x632))))), Neg(Succ(Succ(Succ(Succ(x633))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x632))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x633))))), Pos(new_primModNatS02(Succ(Succ(x632)), Succ(Succ(x633)), x632, x633)))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1856, x1857, x632, x633)=Succ(x1855) which results in the following new constraints: (6) (new_primModNatS01(x1860, x1859)=Succ(x1855) & Succ(Succ(Succ(x1858)))=x1860 & Succ(Succ(Zero))=x1859 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(x1858)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1858)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1858))), Succ(Succ(Zero)), Succ(x1858), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1858))), Succ(Succ(Zero)), Succ(x1858), Zero)))) (7) (new_primModNatS02(x1864, x1863, x1862, x1861)=Succ(x1855) & Succ(Succ(Succ(x1862)))=x1864 & Succ(Succ(Succ(x1861)))=x1863 & (\/x1865,x1866:new_primModNatS02(x1864, x1863, x1862, x1861)=Succ(x1865) & Succ(Succ(x1862))=x1864 & Succ(Succ(x1861))=x1863 ==> new_quot1(x1866, Pos(Succ(Succ(Succ(Succ(x1862))))), Neg(Succ(Succ(Succ(Succ(x1861))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1862))))))_>=_new_quot2(x1866, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x1862)), Succ(Succ(x1861)), x1862, x1861)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1861))))), Pos(new_primModNatS02(Succ(Succ(x1862)), Succ(Succ(x1861)), x1862, x1861)))) ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(x1862)))))), Neg(Succ(Succ(Succ(Succ(Succ(x1861)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1862)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1862))), Succ(Succ(Succ(x1861))), Succ(x1862), Succ(x1861))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x1861)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1862))), Succ(Succ(Succ(x1861))), Succ(x1862), Succ(x1861))))) (8) (new_primModNatS01(x1868, x1867)=Succ(x1855) & Succ(Succ(Zero))=x1868 & Succ(Succ(Zero))=x1867 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (9) (Succ(Succ(x1871))=Succ(x1855) & Succ(Succ(Zero))=x1871 & Succ(Succ(Succ(x1869)))=x1870 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x1869)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1869))), Zero, Succ(x1869))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x1869)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1869))), Zero, Succ(x1869))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1860, x1859)=Succ(x1855) which results in the following new constraint: (10) (new_primModNatS1(new_primMinusNatS0(Succ(x1873), Succ(x1872)), Succ(x1872))=Succ(x1855) & Succ(Succ(Succ(x1858)))=x1873 & Succ(Succ(Zero))=x1872 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(x1858)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1858)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1858))), Succ(Succ(Zero)), Succ(x1858), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1858))), Succ(Succ(Zero)), Succ(x1858), Zero)))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_primModNatS02(x1864, x1863, x1862, x1861)=Succ(x1855) & Succ(Succ(Succ(x1862)))=x1864 & Succ(Succ(Succ(x1861)))=x1863 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(x1862)))))), Neg(Succ(Succ(Succ(Succ(Succ(x1861)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1862)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1862))), Succ(Succ(Succ(x1861))), Succ(x1862), Succ(x1861))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x1861)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1862))), Succ(Succ(Succ(x1861))), Succ(x1862), Succ(x1861))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1868, x1867)=Succ(x1855) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS0(Succ(x1893), Succ(x1892)), Succ(x1892))=Succ(x1855) & Succ(Succ(Zero))=x1893 & Succ(Succ(Zero))=x1892 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: (13) (new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x1869)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1869))), Zero, Succ(x1869))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x1869)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1869))), Zero, Succ(x1869))))) We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(x1858)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1858)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1858))), Succ(Succ(Zero)), Succ(x1858), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1858))), Succ(Succ(Zero)), Succ(x1858), Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1864, x1863, x1862, x1861)=Succ(x1855) which results in the following new constraints: (15) (new_primModNatS01(x1880, x1879)=Succ(x1855) & Succ(Succ(Succ(Succ(x1878))))=x1880 & Succ(Succ(Succ(Zero)))=x1879 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1878))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1878))))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1878)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1878)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1878)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1878)), Succ(Zero))))) (16) (new_primModNatS02(x1884, x1883, x1882, x1881)=Succ(x1855) & Succ(Succ(Succ(Succ(x1882))))=x1884 & Succ(Succ(Succ(Succ(x1881))))=x1883 & (\/x1885,x1886:new_primModNatS02(x1884, x1883, x1882, x1881)=Succ(x1885) & Succ(Succ(Succ(x1882)))=x1884 & Succ(Succ(Succ(x1881)))=x1883 ==> new_quot1(x1886, Pos(Succ(Succ(Succ(Succ(Succ(x1882)))))), Neg(Succ(Succ(Succ(Succ(Succ(x1881)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1882)))))))_>=_new_quot2(x1886, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1882))), Succ(Succ(Succ(x1881))), Succ(x1882), Succ(x1881))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x1881)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1882))), Succ(Succ(Succ(x1881))), Succ(x1882), Succ(x1881))))) ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1882))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1881))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1882))))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1882)))), Succ(Succ(Succ(Succ(x1881)))), Succ(Succ(x1882)), Succ(Succ(x1881)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1881))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1882)))), Succ(Succ(Succ(Succ(x1881)))), Succ(Succ(x1882)), Succ(Succ(x1881)))))) (17) (new_primModNatS01(x1888, x1887)=Succ(x1855) & Succ(Succ(Succ(Zero)))=x1888 & Succ(Succ(Succ(Zero)))=x1887 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (18) (Succ(Succ(x1891))=Succ(x1855) & Succ(Succ(Succ(Zero)))=x1891 & Succ(Succ(Succ(Succ(x1889))))=x1890 ==> new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1889))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1889)))), Succ(Zero), Succ(Succ(x1889)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1889))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1889)))), Succ(Zero), Succ(Succ(x1889)))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1878))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1878))))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1878)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1878)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1878)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1878)), Succ(Zero))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1882))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1881))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1882))))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1882)))), Succ(Succ(Succ(Succ(x1881)))), Succ(Succ(x1882)), Succ(Succ(x1881)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1881))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1882)))), Succ(Succ(Succ(Succ(x1881)))), Succ(Succ(x1882)), Succ(Succ(x1881)))))) We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: (21) (new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: (22) (new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1889))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1889)))), Succ(Zero), Succ(Succ(x1889)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1889))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1889)))), Succ(Zero), Succ(Succ(x1889)))))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (23) (new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_quot1(x721, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x722))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(x721, False, Neg(Succ(Succ(Succ(Succ(x722))))), Pos(Succ(Succ(Succ(Zero))))), new_quot2(x723, False, x724, x725) -> new_quot1(x723, x724, x725, Integer(Pos(Zero)), x724) which results in the following constraint: (1) (new_quot2(x721, False, Neg(Succ(Succ(Succ(Succ(x722))))), Pos(Succ(Succ(Succ(Zero)))))=new_quot2(x723, False, x724, x725) ==> new_quot1(x721, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x722))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x721, False, Neg(Succ(Succ(Succ(Succ(x722))))), Pos(Succ(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x721, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x722))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x721, False, Neg(Succ(Succ(Succ(Succ(x722))))), Pos(Succ(Succ(Succ(Zero)))))) For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783)))))) -> new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero))))), new_quot2(x784, False, x785, x786) -> new_quot1(x784, x785, x786, Integer(Pos(Zero)), x785) which results in the following constraint: (1) (new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))=new_quot2(x784, False, x785, x786) ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero))))=x1898 & Pos(Zero)=x1899 & new_primEqInt(x1898, x1899)=False ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x1898, x1899)=False which results in the following new constraints: (3) (False=False & Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero))))=Neg(Succ(x1901)) & Pos(Zero)=Pos(x1900) ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) (4) (False=False & Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero))))=Pos(Succ(x1902)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (VII) which results in the following new constraint: (5) (Succ(x783)=x1903 & Succ(Succ(Zero))=x1904 & new_primModNatS1(x1903, x1904)=Succ(x1902) ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x1903, x1904)=Succ(x1902) which results in the following new constraints: (6) (Succ(Zero)=Succ(x1902) & Succ(x783)=Succ(Zero) & Succ(Succ(Zero))=Succ(x1905) ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) (7) (new_primModNatS1(new_primMinusNatS0(Succ(x1907), Zero), Zero)=Succ(x1902) & Succ(x783)=Succ(Succ(x1907)) & Succ(Succ(Zero))=Zero ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) (8) (new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)=Succ(x1902) & Succ(x783)=Succ(Zero) & Succ(Succ(Zero))=Zero ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) (9) (new_primModNatS02(x1909, x1908, x1909, x1908)=Succ(x1902) & Succ(x783)=Succ(Succ(x1909)) & Succ(Succ(Zero))=Succ(x1908) ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(x783))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x783))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x783), Succ(Succ(Zero)))))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) We solved constraint (7) using rules (I), (II).We solved constraint (8) using rules (I), (II).We simplified constraint (9) using rules (I), (II), (III), (VII) which results in the following new constraint: (11) (x1909=x1910 & x1908=x1911 & new_primModNatS02(x1909, x1908, x1910, x1911)=Succ(x1902) & Succ(Zero)=x1908 ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(x1909)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1909)))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x1909)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1909)), Succ(Succ(Zero)))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1909, x1908, x1910, x1911)=Succ(x1902) which results in the following new constraints: (12) (new_primModNatS01(x1914, x1913)=Succ(x1902) & x1914=Succ(x1912) & x1913=Zero & Succ(Zero)=x1913 ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(x1914)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1914)))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x1914)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1914)), Succ(Succ(Zero)))))) (13) (new_primModNatS02(x1918, x1917, x1916, x1915)=Succ(x1902) & x1918=Succ(x1916) & x1917=Succ(x1915) & Succ(Zero)=x1917 & (\/x1919,x1920:new_primModNatS02(x1918, x1917, x1916, x1915)=Succ(x1919) & x1918=x1916 & x1917=x1915 & Succ(Zero)=x1917 ==> new_quot1(x1920, Pos(Succ(Succ(Succ(Succ(Succ(x1918)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1918)))))))_>=_new_quot2(x1920, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x1918)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1918)), Succ(Succ(Zero)))))) ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(x1918)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1918)))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x1918)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1918)), Succ(Succ(Zero)))))) (14) (new_primModNatS01(x1922, x1921)=Succ(x1902) & x1922=Zero & x1921=Zero & Succ(Zero)=x1921 ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(x1922)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1922)))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x1922)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1922)), Succ(Succ(Zero)))))) (15) (Succ(Succ(x1925))=Succ(x1902) & x1925=Zero & x1924=Succ(x1923) & Succ(Zero)=x1924 ==> new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(x1925)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1925)))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x1925)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x1925)), Succ(Succ(Zero)))))) We solved constraint (12) using rules (I), (II), (III).We simplified constraint (13) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (16) (new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1916))))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1916))))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x1916))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x1916))), Succ(Succ(Zero)))))) We solved constraint (14) using rules (I), (II), (III).We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (17) (new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) the following chains were created: *We consider the chain new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x844))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x844)))))) -> new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x844, Zero, x844, Zero))), new_quot2(x845, False, x846, x847) -> new_quot1(x845, x846, x847, Integer(Pos(Zero)), x846) which results in the following constraint: (1) (new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x844, Zero, x844, Zero)))=new_quot2(x845, False, x846, x847) ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x844))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x844))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x844, Zero, x844, Zero)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS02(x844, Zero, x844, Zero))=x1928 & Pos(Zero)=x1929 & new_primEqInt(x1928, x1929)=False ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x844))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x844))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x844, Zero, x844, Zero)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x1928, x1929)=False which results in the following new constraints: (3) (False=False & Pos(new_primModNatS02(x844, Zero, x844, Zero))=Neg(Succ(x1931)) & Pos(Zero)=Pos(x1930) ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x844))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x844))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x844, Zero, x844, Zero)))) (4) (False=False & Pos(new_primModNatS02(x844, Zero, x844, Zero))=Pos(Succ(x1932)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x844))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x844))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x844, Zero, x844, Zero)))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (VII) which results in the following new constraint: (5) (Zero=x1933 & x844=x1934 & Zero=x1935 & new_primModNatS02(x844, x1933, x1934, x1935)=Succ(x1932) ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x844))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x844))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x844, Zero, x844, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x844, Zero, x844, Zero)))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x844, x1933, x1934, x1935)=Succ(x1932) which results in the following new constraints: (6) (new_primModNatS01(x1938, x1937)=Succ(x1932) & Zero=x1937 & x1938=Succ(x1936) & Zero=Zero ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x1938))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1938))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x1938, Zero, x1938, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x1938, Zero, x1938, Zero)))) (7) (new_primModNatS02(x1942, x1941, x1940, x1939)=Succ(x1932) & Zero=x1941 & x1942=Succ(x1940) & Zero=Succ(x1939) & (\/x1943,x1944:new_primModNatS02(x1942, x1941, x1940, x1939)=Succ(x1943) & Zero=x1941 & x1942=x1940 & Zero=x1939 ==> new_quot1(x1944, Pos(Succ(Succ(Succ(Succ(x1942))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1942))))))_>=_new_quot2(x1944, new_primEqInt(Pos(new_primModNatS02(x1942, Zero, x1942, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x1942, Zero, x1942, Zero)))) ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x1942))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1942))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x1942, Zero, x1942, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x1942, Zero, x1942, Zero)))) (8) (new_primModNatS01(x1946, x1945)=Succ(x1932) & Zero=x1945 & x1946=Zero & Zero=Zero ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x1946))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1946))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x1946, Zero, x1946, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x1946, Zero, x1946, Zero)))) (9) (Succ(Succ(x1949))=Succ(x1932) & Zero=x1948 & x1949=Zero & Zero=Succ(x1947) ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(x1949))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1949))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(x1949, Zero, x1949, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x1949, Zero, x1949, Zero)))) We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (10) (Succ(x1936)=x1950 & new_primModNatS01(x1950, x1937)=Succ(x1932) & Zero=x1937 ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(Succ(x1936)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1936)))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(Succ(x1936), Zero, Succ(x1936), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x1936), Zero, Succ(x1936), Zero)))) We solved constraint (7) using rules (I), (II).We simplified constraint (8) using rules (I), (II), (III), (VII) which results in the following new constraint: (11) (Zero=x1957 & new_primModNatS01(x1957, x1945)=Succ(x1932) & Zero=x1945 ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) We solved constraint (9) using rules (I), (II).We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1950, x1937)=Succ(x1932) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS0(Succ(x1952), Succ(x1951)), Succ(x1951))=Succ(x1932) & Succ(x1936)=x1952 & Zero=x1951 ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(Succ(x1936)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1936)))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(Succ(x1936), Zero, Succ(x1936), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x1936), Zero, Succ(x1936), Zero)))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (13) (new_quot1(x843, Pos(Succ(Succ(Succ(Succ(Succ(x1936)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1936)))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(Succ(x1936), Zero, Succ(x1936), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x1936), Zero, Succ(x1936), Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1957, x1945)=Succ(x1932) which results in the following new constraint: (14) (new_primModNatS1(new_primMinusNatS0(Succ(x1959), Succ(x1958)), Succ(x1958))=Succ(x1932) & Zero=x1959 & Zero=x1958 ==> new_quot1(x843, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) We simplified constraint (14) using rules (III), (IV), (VII) which results in the following new constraint: (15) (new_quot1(x843, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) the following chains were created: *We consider the chain new_quot1(x904, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(x904, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))), new_quot2(x905, False, x906, x907) -> new_quot1(x905, x906, x907, Integer(Pos(Zero)), x906) which results in the following constraint: (1) (new_quot2(x904, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))=new_quot2(x905, False, x906, x907) ==> new_quot1(x904, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x904, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x904, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x904, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: *We consider the chain new_quot1(x936, Pos(Succ(Succ(Succ(Succ(x937))))), Pos(Succ(Succ(Succ(Succ(x938))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x937)))))) -> new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938))), new_quot2(x939, False, x940, x941) -> new_quot1(x939, x940, x941, Integer(Pos(Zero)), x940) which results in the following constraint: (1) (new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)))=new_quot2(x939, False, x940, x941) ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(x937))))), Pos(Succ(Succ(Succ(Succ(x938))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x937))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938))=x1964 & Pos(Zero)=x1965 & new_primEqInt(x1964, x1965)=False ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(x937))))), Pos(Succ(Succ(Succ(Succ(x938))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x937))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x1964, x1965)=False which results in the following new constraints: (3) (False=False & Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938))=Neg(Succ(x1967)) & Pos(Zero)=Pos(x1966) ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(x937))))), Pos(Succ(Succ(Succ(Succ(x938))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x937))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)))) (4) (False=False & Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938))=Pos(Succ(x1968)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(x937))))), Pos(Succ(Succ(Succ(Succ(x938))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x937))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (VII) which results in the following new constraint: (5) (Succ(Succ(x937))=x1969 & Succ(Succ(x938))=x1970 & new_primModNatS02(x1969, x1970, x937, x938)=Succ(x1968) ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(x937))))), Pos(Succ(Succ(Succ(Succ(x938))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x937))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x938))))), Pos(new_primModNatS02(Succ(Succ(x937)), Succ(Succ(x938)), x937, x938)))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1969, x1970, x937, x938)=Succ(x1968) which results in the following new constraints: (6) (new_primModNatS01(x1973, x1972)=Succ(x1968) & Succ(Succ(Succ(x1971)))=x1973 & Succ(Succ(Zero))=x1972 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(x1971)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1971)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1971))), Succ(Succ(Zero)), Succ(x1971), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1971))), Succ(Succ(Zero)), Succ(x1971), Zero)))) (7) (new_primModNatS02(x1977, x1976, x1975, x1974)=Succ(x1968) & Succ(Succ(Succ(x1975)))=x1977 & Succ(Succ(Succ(x1974)))=x1976 & (\/x1978,x1979:new_primModNatS02(x1977, x1976, x1975, x1974)=Succ(x1978) & Succ(Succ(x1975))=x1977 & Succ(Succ(x1974))=x1976 ==> new_quot1(x1979, Pos(Succ(Succ(Succ(Succ(x1975))))), Pos(Succ(Succ(Succ(Succ(x1974))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1975))))))_>=_new_quot2(x1979, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x1975)), Succ(Succ(x1974)), x1975, x1974)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1974))))), Pos(new_primModNatS02(Succ(Succ(x1975)), Succ(Succ(x1974)), x1975, x1974)))) ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(x1975)))))), Pos(Succ(Succ(Succ(Succ(Succ(x1974)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1975)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1975))), Succ(Succ(Succ(x1974))), Succ(x1975), Succ(x1974))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1974)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1975))), Succ(Succ(Succ(x1974))), Succ(x1975), Succ(x1974))))) (8) (new_primModNatS01(x1981, x1980)=Succ(x1968) & Succ(Succ(Zero))=x1981 & Succ(Succ(Zero))=x1980 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (9) (Succ(Succ(x1984))=Succ(x1968) & Succ(Succ(Zero))=x1984 & Succ(Succ(Succ(x1982)))=x1983 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x1982)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1982))), Zero, Succ(x1982))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1982)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1982))), Zero, Succ(x1982))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1973, x1972)=Succ(x1968) which results in the following new constraint: (10) (new_primModNatS1(new_primMinusNatS0(Succ(x1986), Succ(x1985)), Succ(x1985))=Succ(x1968) & Succ(Succ(Succ(x1971)))=x1986 & Succ(Succ(Zero))=x1985 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(x1971)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1971)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1971))), Succ(Succ(Zero)), Succ(x1971), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1971))), Succ(Succ(Zero)), Succ(x1971), Zero)))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_primModNatS02(x1977, x1976, x1975, x1974)=Succ(x1968) & Succ(Succ(Succ(x1975)))=x1977 & Succ(Succ(Succ(x1974)))=x1976 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(x1975)))))), Pos(Succ(Succ(Succ(Succ(Succ(x1974)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1975)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1975))), Succ(Succ(Succ(x1974))), Succ(x1975), Succ(x1974))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1974)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1975))), Succ(Succ(Succ(x1974))), Succ(x1975), Succ(x1974))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1981, x1980)=Succ(x1968) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS0(Succ(x2006), Succ(x2005)), Succ(x2005))=Succ(x1968) & Succ(Succ(Zero))=x2006 & Succ(Succ(Zero))=x2005 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: (13) (new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x1982)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1982))), Zero, Succ(x1982))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1982)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1982))), Zero, Succ(x1982))))) We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(x1971)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1971)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1971))), Succ(Succ(Zero)), Succ(x1971), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1971))), Succ(Succ(Zero)), Succ(x1971), Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1977, x1976, x1975, x1974)=Succ(x1968) which results in the following new constraints: (15) (new_primModNatS01(x1993, x1992)=Succ(x1968) & Succ(Succ(Succ(Succ(x1991))))=x1993 & Succ(Succ(Succ(Zero)))=x1992 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1991))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1991))))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1991)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1991)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1991)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1991)), Succ(Zero))))) (16) (new_primModNatS02(x1997, x1996, x1995, x1994)=Succ(x1968) & Succ(Succ(Succ(Succ(x1995))))=x1997 & Succ(Succ(Succ(Succ(x1994))))=x1996 & (\/x1998,x1999:new_primModNatS02(x1997, x1996, x1995, x1994)=Succ(x1998) & Succ(Succ(Succ(x1995)))=x1997 & Succ(Succ(Succ(x1994)))=x1996 ==> new_quot1(x1999, Pos(Succ(Succ(Succ(Succ(Succ(x1995)))))), Pos(Succ(Succ(Succ(Succ(Succ(x1994)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1995)))))))_>=_new_quot2(x1999, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1995))), Succ(Succ(Succ(x1994))), Succ(x1995), Succ(x1994))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1994)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1995))), Succ(Succ(Succ(x1994))), Succ(x1995), Succ(x1994))))) ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1995))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1994))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1995))))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1995)))), Succ(Succ(Succ(Succ(x1994)))), Succ(Succ(x1995)), Succ(Succ(x1994)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1994))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1995)))), Succ(Succ(Succ(Succ(x1994)))), Succ(Succ(x1995)), Succ(Succ(x1994)))))) (17) (new_primModNatS01(x2001, x2000)=Succ(x1968) & Succ(Succ(Succ(Zero)))=x2001 & Succ(Succ(Succ(Zero)))=x2000 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (18) (Succ(Succ(x2004))=Succ(x1968) & Succ(Succ(Succ(Zero)))=x2004 & Succ(Succ(Succ(Succ(x2002))))=x2003 ==> new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2002))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2002)))), Succ(Zero), Succ(Succ(x2002)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2002))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2002)))), Succ(Zero), Succ(Succ(x2002)))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1991))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1991))))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1991)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1991)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1991)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1991)), Succ(Zero))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1995))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1994))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1995))))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1995)))), Succ(Succ(Succ(Succ(x1994)))), Succ(Succ(x1995)), Succ(Succ(x1994)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1994))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1995)))), Succ(Succ(Succ(Succ(x1994)))), Succ(Succ(x1995)), Succ(Succ(x1994)))))) We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: (21) (new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: (22) (new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2002))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2002)))), Succ(Zero), Succ(Succ(x2002)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2002))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2002)))), Succ(Zero), Succ(Succ(x2002)))))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (23) (new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_quot1(x1026, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1027))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(x1026, False, Pos(Succ(Succ(Succ(Succ(x1027))))), Pos(Succ(Succ(Succ(Zero))))), new_quot2(x1028, False, x1029, x1030) -> new_quot1(x1028, x1029, x1030, Integer(Pos(Zero)), x1029) which results in the following constraint: (1) (new_quot2(x1026, False, Pos(Succ(Succ(Succ(Succ(x1027))))), Pos(Succ(Succ(Succ(Zero)))))=new_quot2(x1028, False, x1029, x1030) ==> new_quot1(x1026, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1027))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1026, False, Pos(Succ(Succ(Succ(Succ(x1027))))), Pos(Succ(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x1026, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1027))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1026, False, Pos(Succ(Succ(Succ(Succ(x1027))))), Pos(Succ(Succ(Succ(Zero)))))) For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088)))))) -> new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero))))), new_quot2(x1089, False, x1090, x1091) -> new_quot1(x1089, x1090, x1091, Integer(Pos(Zero)), x1090) which results in the following constraint: (1) (new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))=new_quot2(x1089, False, x1090, x1091) ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero))))=x2011 & Pos(Zero)=x2012 & new_primEqInt(x2011, x2012)=False ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2011, x2012)=False which results in the following new constraints: (3) (False=False & Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero))))=Neg(Succ(x2014)) & Pos(Zero)=Pos(x2013) ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) (4) (False=False & Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero))))=Pos(Succ(x2015)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (VII) which results in the following new constraint: (5) (Succ(x1088)=x2016 & Succ(Succ(Zero))=x2017 & new_primModNatS1(x2016, x2017)=Succ(x2015) ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x2016, x2017)=Succ(x2015) which results in the following new constraints: (6) (Succ(Zero)=Succ(x2015) & Succ(x1088)=Succ(Zero) & Succ(Succ(Zero))=Succ(x2018) ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) (7) (new_primModNatS1(new_primMinusNatS0(Succ(x2020), Zero), Zero)=Succ(x2015) & Succ(x1088)=Succ(Succ(x2020)) & Succ(Succ(Zero))=Zero ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) (8) (new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)=Succ(x2015) & Succ(x1088)=Succ(Zero) & Succ(Succ(Zero))=Zero ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) (9) (new_primModNatS02(x2022, x2021, x2022, x2021)=Succ(x2015) & Succ(x1088)=Succ(Succ(x2022)) & Succ(Succ(Zero))=Succ(x2021) ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(x1088))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1088))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x1088), Succ(Succ(Zero)))))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) We solved constraint (7) using rules (I), (II).We solved constraint (8) using rules (I), (II).We simplified constraint (9) using rules (I), (II), (III), (VII) which results in the following new constraint: (11) (x2022=x2023 & x2021=x2024 & new_primModNatS02(x2022, x2021, x2023, x2024)=Succ(x2015) & Succ(Zero)=x2021 ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(x2022)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2022)))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x2022)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x2022)), Succ(Succ(Zero)))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2022, x2021, x2023, x2024)=Succ(x2015) which results in the following new constraints: (12) (new_primModNatS01(x2027, x2026)=Succ(x2015) & x2027=Succ(x2025) & x2026=Zero & Succ(Zero)=x2026 ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(x2027)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2027)))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x2027)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x2027)), Succ(Succ(Zero)))))) (13) (new_primModNatS02(x2031, x2030, x2029, x2028)=Succ(x2015) & x2031=Succ(x2029) & x2030=Succ(x2028) & Succ(Zero)=x2030 & (\/x2032,x2033:new_primModNatS02(x2031, x2030, x2029, x2028)=Succ(x2032) & x2031=x2029 & x2030=x2028 & Succ(Zero)=x2030 ==> new_quot1(x2033, Pos(Succ(Succ(Succ(Succ(Succ(x2031)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2031)))))))_>=_new_quot2(x2033, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x2031)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x2031)), Succ(Succ(Zero)))))) ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(x2031)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2031)))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x2031)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x2031)), Succ(Succ(Zero)))))) (14) (new_primModNatS01(x2035, x2034)=Succ(x2015) & x2035=Zero & x2034=Zero & Succ(Zero)=x2034 ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(x2035)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2035)))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x2035)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x2035)), Succ(Succ(Zero)))))) (15) (Succ(Succ(x2038))=Succ(x2015) & x2038=Zero & x2037=Succ(x2036) & Succ(Zero)=x2037 ==> new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(x2038)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2038)))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x2038)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x2038)), Succ(Succ(Zero)))))) We solved constraint (12) using rules (I), (II), (III).We simplified constraint (13) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (16) (new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2029))))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2029))))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x2029))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x2029))), Succ(Succ(Zero)))))) We solved constraint (14) using rules (I), (II), (III).We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (17) (new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) the following chains were created: *We consider the chain new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x1149))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1149)))))) -> new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x1149, Zero, x1149, Zero))), new_quot2(x1150, False, x1151, x1152) -> new_quot1(x1150, x1151, x1152, Integer(Pos(Zero)), x1151) which results in the following constraint: (1) (new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x1149, Zero, x1149, Zero)))=new_quot2(x1150, False, x1151, x1152) ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x1149))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1149))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x1149, Zero, x1149, Zero)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS02(x1149, Zero, x1149, Zero))=x2041 & Pos(Zero)=x2042 & new_primEqInt(x2041, x2042)=False ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x1149))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1149))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x1149, Zero, x1149, Zero)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2041, x2042)=False which results in the following new constraints: (3) (False=False & Pos(new_primModNatS02(x1149, Zero, x1149, Zero))=Neg(Succ(x2044)) & Pos(Zero)=Pos(x2043) ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x1149))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1149))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x1149, Zero, x1149, Zero)))) (4) (False=False & Pos(new_primModNatS02(x1149, Zero, x1149, Zero))=Pos(Succ(x2045)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x1149))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1149))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x1149, Zero, x1149, Zero)))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (VII) which results in the following new constraint: (5) (Zero=x2046 & x1149=x2047 & Zero=x2048 & new_primModNatS02(x1149, x2046, x2047, x2048)=Succ(x2045) ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x1149))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1149))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x1149, Zero, x1149, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x1149, Zero, x1149, Zero)))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1149, x2046, x2047, x2048)=Succ(x2045) which results in the following new constraints: (6) (new_primModNatS01(x2051, x2050)=Succ(x2045) & Zero=x2050 & x2051=Succ(x2049) & Zero=Zero ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x2051))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2051))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x2051, Zero, x2051, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x2051, Zero, x2051, Zero)))) (7) (new_primModNatS02(x2055, x2054, x2053, x2052)=Succ(x2045) & Zero=x2054 & x2055=Succ(x2053) & Zero=Succ(x2052) & (\/x2056,x2057:new_primModNatS02(x2055, x2054, x2053, x2052)=Succ(x2056) & Zero=x2054 & x2055=x2053 & Zero=x2052 ==> new_quot1(x2057, Pos(Succ(Succ(Succ(Succ(x2055))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2055))))))_>=_new_quot2(x2057, new_primEqInt(Pos(new_primModNatS02(x2055, Zero, x2055, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x2055, Zero, x2055, Zero)))) ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x2055))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2055))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x2055, Zero, x2055, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x2055, Zero, x2055, Zero)))) (8) (new_primModNatS01(x2059, x2058)=Succ(x2045) & Zero=x2058 & x2059=Zero & Zero=Zero ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x2059))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2059))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x2059, Zero, x2059, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x2059, Zero, x2059, Zero)))) (9) (Succ(Succ(x2062))=Succ(x2045) & Zero=x2061 & x2062=Zero & Zero=Succ(x2060) ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(x2062))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2062))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(x2062, Zero, x2062, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x2062, Zero, x2062, Zero)))) We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (10) (Succ(x2049)=x2063 & new_primModNatS01(x2063, x2050)=Succ(x2045) & Zero=x2050 ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(Succ(x2049)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2049)))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(Succ(x2049), Zero, Succ(x2049), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2049), Zero, Succ(x2049), Zero)))) We solved constraint (7) using rules (I), (II).We simplified constraint (8) using rules (I), (II), (III), (VII) which results in the following new constraint: (11) (Zero=x2070 & new_primModNatS01(x2070, x2058)=Succ(x2045) & Zero=x2058 ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) We solved constraint (9) using rules (I), (II).We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2063, x2050)=Succ(x2045) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS0(Succ(x2065), Succ(x2064)), Succ(x2064))=Succ(x2045) & Succ(x2049)=x2065 & Zero=x2064 ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(Succ(x2049)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2049)))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(Succ(x2049), Zero, Succ(x2049), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2049), Zero, Succ(x2049), Zero)))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (13) (new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(Succ(x2049)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2049)))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(Succ(x2049), Zero, Succ(x2049), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2049), Zero, Succ(x2049), Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2070, x2058)=Succ(x2045) which results in the following new constraint: (14) (new_primModNatS1(new_primMinusNatS0(Succ(x2072), Succ(x2071)), Succ(x2071))=Succ(x2045) & Zero=x2072 & Zero=x2071 ==> new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) We simplified constraint (14) using rules (III), (IV), (VII) which results in the following new constraint: (15) (new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) For Pair new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) the following chains were created: *We consider the chain new_quot1(x1209, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(x1209, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))), new_quot2(x1210, False, x1211, x1212) -> new_quot1(x1210, x1211, x1212, Integer(Pos(Zero)), x1211) which results in the following constraint: (1) (new_quot2(x1209, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))=new_quot2(x1210, False, x1211, x1212) ==> new_quot1(x1209, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1209, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x1209, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1209, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: *We consider the chain new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(x1242))))), Pos(Succ(Succ(Succ(Succ(x1243))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1242)))))) -> new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243))), new_quot2(x1244, False, x1245, x1246) -> new_quot1(x1244, x1245, x1246, Integer(Pos(Zero)), x1245) which results in the following constraint: (1) (new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)))=new_quot2(x1244, False, x1245, x1246) ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(x1242))))), Pos(Succ(Succ(Succ(Succ(x1243))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1242))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243))=x2077 & Pos(Zero)=x2078 & new_primEqInt(x2077, x2078)=False ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(x1242))))), Pos(Succ(Succ(Succ(Succ(x1243))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1242))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2077, x2078)=False which results in the following new constraints: (3) (False=False & Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243))=Neg(Succ(x2080)) & Pos(Zero)=Pos(x2079) ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(x1242))))), Pos(Succ(Succ(Succ(Succ(x1243))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1242))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)))) (4) (False=False & Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243))=Pos(Succ(x2081)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(x1242))))), Pos(Succ(Succ(Succ(Succ(x1243))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1242))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (5) (Succ(Succ(x1242))=x2082 & Succ(Succ(x1243))=x2083 & new_primModNatS02(x2082, x2083, x1242, x1243)=Succ(x2080) ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(x1242))))), Pos(Succ(Succ(Succ(Succ(x1243))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1242))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x1243))))), Neg(new_primModNatS02(Succ(Succ(x1242)), Succ(Succ(x1243)), x1242, x1243)))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2082, x2083, x1242, x1243)=Succ(x2080) which results in the following new constraints: (6) (new_primModNatS01(x2086, x2085)=Succ(x2080) & Succ(Succ(Succ(x2084)))=x2086 & Succ(Succ(Zero))=x2085 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(x2084)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2084)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2084))), Succ(Succ(Zero)), Succ(x2084), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2084))), Succ(Succ(Zero)), Succ(x2084), Zero)))) (7) (new_primModNatS02(x2090, x2089, x2088, x2087)=Succ(x2080) & Succ(Succ(Succ(x2088)))=x2090 & Succ(Succ(Succ(x2087)))=x2089 & (\/x2091,x2092:new_primModNatS02(x2090, x2089, x2088, x2087)=Succ(x2091) & Succ(Succ(x2088))=x2090 & Succ(Succ(x2087))=x2089 ==> new_quot1(x2092, Neg(Succ(Succ(Succ(Succ(x2088))))), Pos(Succ(Succ(Succ(Succ(x2087))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2088))))))_>=_new_quot2(x2092, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2088)), Succ(Succ(x2087)), x2088, x2087)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2087))))), Neg(new_primModNatS02(Succ(Succ(x2088)), Succ(Succ(x2087)), x2088, x2087)))) ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(x2088)))))), Pos(Succ(Succ(Succ(Succ(Succ(x2087)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2088)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2088))), Succ(Succ(Succ(x2087))), Succ(x2088), Succ(x2087))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2087)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2088))), Succ(Succ(Succ(x2087))), Succ(x2088), Succ(x2087))))) (8) (new_primModNatS01(x2094, x2093)=Succ(x2080) & Succ(Succ(Zero))=x2094 & Succ(Succ(Zero))=x2093 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (9) (Succ(Succ(x2097))=Succ(x2080) & Succ(Succ(Zero))=x2097 & Succ(Succ(Succ(x2095)))=x2096 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x2095)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2095))), Zero, Succ(x2095))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2095)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2095))), Zero, Succ(x2095))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2086, x2085)=Succ(x2080) which results in the following new constraint: (10) (new_primModNatS1(new_primMinusNatS0(Succ(x2099), Succ(x2098)), Succ(x2098))=Succ(x2080) & Succ(Succ(Succ(x2084)))=x2099 & Succ(Succ(Zero))=x2098 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(x2084)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2084)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2084))), Succ(Succ(Zero)), Succ(x2084), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2084))), Succ(Succ(Zero)), Succ(x2084), Zero)))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_primModNatS02(x2090, x2089, x2088, x2087)=Succ(x2080) & Succ(Succ(Succ(x2088)))=x2090 & Succ(Succ(Succ(x2087)))=x2089 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(x2088)))))), Pos(Succ(Succ(Succ(Succ(Succ(x2087)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2088)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2088))), Succ(Succ(Succ(x2087))), Succ(x2088), Succ(x2087))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2087)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2088))), Succ(Succ(Succ(x2087))), Succ(x2088), Succ(x2087))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2094, x2093)=Succ(x2080) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS0(Succ(x2119), Succ(x2118)), Succ(x2118))=Succ(x2080) & Succ(Succ(Zero))=x2119 & Succ(Succ(Zero))=x2118 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: (13) (new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x2095)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2095))), Zero, Succ(x2095))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2095)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2095))), Zero, Succ(x2095))))) We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(x2084)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2084)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2084))), Succ(Succ(Zero)), Succ(x2084), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2084))), Succ(Succ(Zero)), Succ(x2084), Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2090, x2089, x2088, x2087)=Succ(x2080) which results in the following new constraints: (15) (new_primModNatS01(x2106, x2105)=Succ(x2080) & Succ(Succ(Succ(Succ(x2104))))=x2106 & Succ(Succ(Succ(Zero)))=x2105 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2104))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2104))))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2104)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2104)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2104)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2104)), Succ(Zero))))) (16) (new_primModNatS02(x2110, x2109, x2108, x2107)=Succ(x2080) & Succ(Succ(Succ(Succ(x2108))))=x2110 & Succ(Succ(Succ(Succ(x2107))))=x2109 & (\/x2111,x2112:new_primModNatS02(x2110, x2109, x2108, x2107)=Succ(x2111) & Succ(Succ(Succ(x2108)))=x2110 & Succ(Succ(Succ(x2107)))=x2109 ==> new_quot1(x2112, Neg(Succ(Succ(Succ(Succ(Succ(x2108)))))), Pos(Succ(Succ(Succ(Succ(Succ(x2107)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2108)))))))_>=_new_quot2(x2112, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2108))), Succ(Succ(Succ(x2107))), Succ(x2108), Succ(x2107))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2107)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2108))), Succ(Succ(Succ(x2107))), Succ(x2108), Succ(x2107))))) ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2108))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2107))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2108))))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2108)))), Succ(Succ(Succ(Succ(x2107)))), Succ(Succ(x2108)), Succ(Succ(x2107)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2107))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2108)))), Succ(Succ(Succ(Succ(x2107)))), Succ(Succ(x2108)), Succ(Succ(x2107)))))) (17) (new_primModNatS01(x2114, x2113)=Succ(x2080) & Succ(Succ(Succ(Zero)))=x2114 & Succ(Succ(Succ(Zero)))=x2113 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (18) (Succ(Succ(x2117))=Succ(x2080) & Succ(Succ(Succ(Zero)))=x2117 & Succ(Succ(Succ(Succ(x2115))))=x2116 ==> new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2115))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2115)))), Succ(Zero), Succ(Succ(x2115)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2115))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2115)))), Succ(Zero), Succ(Succ(x2115)))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2104))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2104))))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2104)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2104)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2104)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2104)), Succ(Zero))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2108))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2107))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2108))))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2108)))), Succ(Succ(Succ(Succ(x2107)))), Succ(Succ(x2108)), Succ(Succ(x2107)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2107))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2108)))), Succ(Succ(Succ(Succ(x2107)))), Succ(Succ(x2108)), Succ(Succ(x2107)))))) We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: (21) (new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: (22) (new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2115))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2115)))), Succ(Zero), Succ(Succ(x2115)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2115))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2115)))), Succ(Zero), Succ(Succ(x2115)))))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (23) (new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_quot1(x1331, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1332))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(x1331, False, Pos(Succ(Succ(Succ(Succ(x1332))))), Neg(Succ(Succ(Succ(Zero))))), new_quot2(x1333, False, x1334, x1335) -> new_quot1(x1333, x1334, x1335, Integer(Pos(Zero)), x1334) which results in the following constraint: (1) (new_quot2(x1331, False, Pos(Succ(Succ(Succ(Succ(x1332))))), Neg(Succ(Succ(Succ(Zero)))))=new_quot2(x1333, False, x1334, x1335) ==> new_quot1(x1331, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1332))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1331, False, Pos(Succ(Succ(Succ(Succ(x1332))))), Neg(Succ(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x1331, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1332))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1331, False, Pos(Succ(Succ(Succ(Succ(x1332))))), Neg(Succ(Succ(Succ(Zero)))))) For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393)))))) -> new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero))))), new_quot2(x1394, False, x1395, x1396) -> new_quot1(x1394, x1395, x1396, Integer(Pos(Zero)), x1395) which results in the following constraint: (1) (new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))=new_quot2(x1394, False, x1395, x1396) ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero))))=x2124 & Pos(Zero)=x2125 & new_primEqInt(x2124, x2125)=False ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2124, x2125)=False which results in the following new constraints: (3) (False=False & Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero))))=Neg(Succ(x2127)) & Pos(Zero)=Pos(x2126) ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) (4) (False=False & Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero))))=Pos(Succ(x2128)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (5) (Succ(x1393)=x2129 & Succ(Succ(Zero))=x2130 & new_primModNatS1(x2129, x2130)=Succ(x2127) ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x2129, x2130)=Succ(x2127) which results in the following new constraints: (6) (Succ(Zero)=Succ(x2127) & Succ(x1393)=Succ(Zero) & Succ(Succ(Zero))=Succ(x2131) ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) (7) (new_primModNatS1(new_primMinusNatS0(Succ(x2133), Zero), Zero)=Succ(x2127) & Succ(x1393)=Succ(Succ(x2133)) & Succ(Succ(Zero))=Zero ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) (8) (new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)=Succ(x2127) & Succ(x1393)=Succ(Zero) & Succ(Succ(Zero))=Zero ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) (9) (new_primModNatS02(x2135, x2134, x2135, x2134)=Succ(x2127) & Succ(x1393)=Succ(Succ(x2135)) & Succ(Succ(Zero))=Succ(x2134) ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(x1393))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1393))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1393), Succ(Succ(Zero)))))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) We solved constraint (7) using rules (I), (II).We solved constraint (8) using rules (I), (II).We simplified constraint (9) using rules (I), (II), (III), (VII) which results in the following new constraint: (11) (x2135=x2136 & x2134=x2137 & new_primModNatS02(x2135, x2134, x2136, x2137)=Succ(x2127) & Succ(Zero)=x2134 ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(x2135)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2135)))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2135)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2135)), Succ(Succ(Zero)))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2135, x2134, x2136, x2137)=Succ(x2127) which results in the following new constraints: (12) (new_primModNatS01(x2140, x2139)=Succ(x2127) & x2140=Succ(x2138) & x2139=Zero & Succ(Zero)=x2139 ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(x2140)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2140)))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2140)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2140)), Succ(Succ(Zero)))))) (13) (new_primModNatS02(x2144, x2143, x2142, x2141)=Succ(x2127) & x2144=Succ(x2142) & x2143=Succ(x2141) & Succ(Zero)=x2143 & (\/x2145,x2146:new_primModNatS02(x2144, x2143, x2142, x2141)=Succ(x2145) & x2144=x2142 & x2143=x2141 & Succ(Zero)=x2143 ==> new_quot1(x2146, Neg(Succ(Succ(Succ(Succ(Succ(x2144)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2144)))))))_>=_new_quot2(x2146, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2144)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2144)), Succ(Succ(Zero)))))) ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(x2144)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2144)))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2144)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2144)), Succ(Succ(Zero)))))) (14) (new_primModNatS01(x2148, x2147)=Succ(x2127) & x2148=Zero & x2147=Zero & Succ(Zero)=x2147 ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(x2148)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2148)))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2148)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2148)), Succ(Succ(Zero)))))) (15) (Succ(Succ(x2151))=Succ(x2127) & x2151=Zero & x2150=Succ(x2149) & Succ(Zero)=x2150 ==> new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(x2151)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2151)))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2151)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2151)), Succ(Succ(Zero)))))) We solved constraint (12) using rules (I), (II), (III).We simplified constraint (13) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (16) (new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2142))))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2142))))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x2142))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x2142))), Succ(Succ(Zero)))))) We solved constraint (14) using rules (I), (II), (III).We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (17) (new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) the following chains were created: *We consider the chain new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x1454))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1454)))))) -> new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x1454, Zero, x1454, Zero))), new_quot2(x1455, False, x1456, x1457) -> new_quot1(x1455, x1456, x1457, Integer(Pos(Zero)), x1456) which results in the following constraint: (1) (new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x1454, Zero, x1454, Zero)))=new_quot2(x1455, False, x1456, x1457) ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x1454))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1454))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x1454, Zero, x1454, Zero)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS02(x1454, Zero, x1454, Zero))=x2154 & Pos(Zero)=x2155 & new_primEqInt(x2154, x2155)=False ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x1454))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1454))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x1454, Zero, x1454, Zero)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2154, x2155)=False which results in the following new constraints: (3) (False=False & Neg(new_primModNatS02(x1454, Zero, x1454, Zero))=Neg(Succ(x2157)) & Pos(Zero)=Pos(x2156) ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x1454))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1454))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x1454, Zero, x1454, Zero)))) (4) (False=False & Neg(new_primModNatS02(x1454, Zero, x1454, Zero))=Pos(Succ(x2158)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x1454))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1454))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x1454, Zero, x1454, Zero)))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (5) (Zero=x2159 & x1454=x2160 & Zero=x2161 & new_primModNatS02(x1454, x2159, x2160, x2161)=Succ(x2157) ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x1454))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1454))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x1454, Zero, x1454, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x1454, Zero, x1454, Zero)))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1454, x2159, x2160, x2161)=Succ(x2157) which results in the following new constraints: (6) (new_primModNatS01(x2164, x2163)=Succ(x2157) & Zero=x2163 & x2164=Succ(x2162) & Zero=Zero ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x2164))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2164))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x2164, Zero, x2164, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x2164, Zero, x2164, Zero)))) (7) (new_primModNatS02(x2168, x2167, x2166, x2165)=Succ(x2157) & Zero=x2167 & x2168=Succ(x2166) & Zero=Succ(x2165) & (\/x2169,x2170:new_primModNatS02(x2168, x2167, x2166, x2165)=Succ(x2169) & Zero=x2167 & x2168=x2166 & Zero=x2165 ==> new_quot1(x2170, Neg(Succ(Succ(Succ(Succ(x2168))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2168))))))_>=_new_quot2(x2170, new_primEqInt(Neg(new_primModNatS02(x2168, Zero, x2168, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x2168, Zero, x2168, Zero)))) ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x2168))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2168))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x2168, Zero, x2168, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x2168, Zero, x2168, Zero)))) (8) (new_primModNatS01(x2172, x2171)=Succ(x2157) & Zero=x2171 & x2172=Zero & Zero=Zero ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x2172))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2172))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x2172, Zero, x2172, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x2172, Zero, x2172, Zero)))) (9) (Succ(Succ(x2175))=Succ(x2157) & Zero=x2174 & x2175=Zero & Zero=Succ(x2173) ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(x2175))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2175))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(x2175, Zero, x2175, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x2175, Zero, x2175, Zero)))) We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (10) (Succ(x2162)=x2176 & new_primModNatS01(x2176, x2163)=Succ(x2157) & Zero=x2163 ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(Succ(x2162)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2162)))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(Succ(x2162), Zero, Succ(x2162), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2162), Zero, Succ(x2162), Zero)))) We solved constraint (7) using rules (I), (II).We simplified constraint (8) using rules (I), (II), (III), (VII) which results in the following new constraint: (11) (Zero=x2183 & new_primModNatS01(x2183, x2171)=Succ(x2157) & Zero=x2171 ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) We solved constraint (9) using rules (I), (II).We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2176, x2163)=Succ(x2157) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS0(Succ(x2178), Succ(x2177)), Succ(x2177))=Succ(x2157) & Succ(x2162)=x2178 & Zero=x2177 ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(Succ(x2162)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2162)))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(Succ(x2162), Zero, Succ(x2162), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2162), Zero, Succ(x2162), Zero)))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (13) (new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(Succ(x2162)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2162)))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(Succ(x2162), Zero, Succ(x2162), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2162), Zero, Succ(x2162), Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2183, x2171)=Succ(x2157) which results in the following new constraint: (14) (new_primModNatS1(new_primMinusNatS0(Succ(x2185), Succ(x2184)), Succ(x2184))=Succ(x2157) & Zero=x2185 & Zero=x2184 ==> new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) We simplified constraint (14) using rules (III), (IV), (VII) which results in the following new constraint: (15) (new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) the following chains were created: *We consider the chain new_quot1(x1514, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(x1514, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))), new_quot2(x1515, False, x1516, x1517) -> new_quot1(x1515, x1516, x1517, Integer(Pos(Zero)), x1516) which results in the following constraint: (1) (new_quot2(x1514, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))=new_quot2(x1515, False, x1516, x1517) ==> new_quot1(x1514, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1514, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x1514, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1514, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: *We consider the chain new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(x1547))))), Neg(Succ(Succ(Succ(Succ(x1548))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1547)))))) -> new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548))), new_quot2(x1549, False, x1550, x1551) -> new_quot1(x1549, x1550, x1551, Integer(Pos(Zero)), x1550) which results in the following constraint: (1) (new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)))=new_quot2(x1549, False, x1550, x1551) ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(x1547))))), Neg(Succ(Succ(Succ(Succ(x1548))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1547))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548))=x2190 & Pos(Zero)=x2191 & new_primEqInt(x2190, x2191)=False ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(x1547))))), Neg(Succ(Succ(Succ(Succ(x1548))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1547))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2190, x2191)=False which results in the following new constraints: (3) (False=False & Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548))=Neg(Succ(x2193)) & Pos(Zero)=Pos(x2192) ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(x1547))))), Neg(Succ(Succ(Succ(Succ(x1548))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1547))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)))) (4) (False=False & Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548))=Pos(Succ(x2194)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(x1547))))), Neg(Succ(Succ(Succ(Succ(x1548))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1547))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (5) (Succ(Succ(x1547))=x2195 & Succ(Succ(x1548))=x2196 & new_primModNatS02(x2195, x2196, x1547, x1548)=Succ(x2193) ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(x1547))))), Neg(Succ(Succ(Succ(Succ(x1548))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1547))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1548))))), Neg(new_primModNatS02(Succ(Succ(x1547)), Succ(Succ(x1548)), x1547, x1548)))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2195, x2196, x1547, x1548)=Succ(x2193) which results in the following new constraints: (6) (new_primModNatS01(x2199, x2198)=Succ(x2193) & Succ(Succ(Succ(x2197)))=x2199 & Succ(Succ(Zero))=x2198 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(x2197)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2197)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2197))), Succ(Succ(Zero)), Succ(x2197), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2197))), Succ(Succ(Zero)), Succ(x2197), Zero)))) (7) (new_primModNatS02(x2203, x2202, x2201, x2200)=Succ(x2193) & Succ(Succ(Succ(x2201)))=x2203 & Succ(Succ(Succ(x2200)))=x2202 & (\/x2204,x2205:new_primModNatS02(x2203, x2202, x2201, x2200)=Succ(x2204) & Succ(Succ(x2201))=x2203 & Succ(Succ(x2200))=x2202 ==> new_quot1(x2205, Neg(Succ(Succ(Succ(Succ(x2201))))), Neg(Succ(Succ(Succ(Succ(x2200))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2201))))))_>=_new_quot2(x2205, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2201)), Succ(Succ(x2200)), x2201, x2200)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2200))))), Neg(new_primModNatS02(Succ(Succ(x2201)), Succ(Succ(x2200)), x2201, x2200)))) ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(x2201)))))), Neg(Succ(Succ(Succ(Succ(Succ(x2200)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2201)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2201))), Succ(Succ(Succ(x2200))), Succ(x2201), Succ(x2200))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2200)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2201))), Succ(Succ(Succ(x2200))), Succ(x2201), Succ(x2200))))) (8) (new_primModNatS01(x2207, x2206)=Succ(x2193) & Succ(Succ(Zero))=x2207 & Succ(Succ(Zero))=x2206 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (9) (Succ(Succ(x2210))=Succ(x2193) & Succ(Succ(Zero))=x2210 & Succ(Succ(Succ(x2208)))=x2209 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x2208)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2208))), Zero, Succ(x2208))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2208)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2208))), Zero, Succ(x2208))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2199, x2198)=Succ(x2193) which results in the following new constraint: (10) (new_primModNatS1(new_primMinusNatS0(Succ(x2212), Succ(x2211)), Succ(x2211))=Succ(x2193) & Succ(Succ(Succ(x2197)))=x2212 & Succ(Succ(Zero))=x2211 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(x2197)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2197)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2197))), Succ(Succ(Zero)), Succ(x2197), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2197))), Succ(Succ(Zero)), Succ(x2197), Zero)))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_primModNatS02(x2203, x2202, x2201, x2200)=Succ(x2193) & Succ(Succ(Succ(x2201)))=x2203 & Succ(Succ(Succ(x2200)))=x2202 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(x2201)))))), Neg(Succ(Succ(Succ(Succ(Succ(x2200)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2201)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2201))), Succ(Succ(Succ(x2200))), Succ(x2201), Succ(x2200))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2200)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2201))), Succ(Succ(Succ(x2200))), Succ(x2201), Succ(x2200))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2207, x2206)=Succ(x2193) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS0(Succ(x2232), Succ(x2231)), Succ(x2231))=Succ(x2193) & Succ(Succ(Zero))=x2232 & Succ(Succ(Zero))=x2231 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: (13) (new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x2208)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2208))), Zero, Succ(x2208))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2208)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2208))), Zero, Succ(x2208))))) We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(x2197)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2197)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2197))), Succ(Succ(Zero)), Succ(x2197), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2197))), Succ(Succ(Zero)), Succ(x2197), Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2203, x2202, x2201, x2200)=Succ(x2193) which results in the following new constraints: (15) (new_primModNatS01(x2219, x2218)=Succ(x2193) & Succ(Succ(Succ(Succ(x2217))))=x2219 & Succ(Succ(Succ(Zero)))=x2218 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2217))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2217))))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2217)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2217)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2217)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2217)), Succ(Zero))))) (16) (new_primModNatS02(x2223, x2222, x2221, x2220)=Succ(x2193) & Succ(Succ(Succ(Succ(x2221))))=x2223 & Succ(Succ(Succ(Succ(x2220))))=x2222 & (\/x2224,x2225:new_primModNatS02(x2223, x2222, x2221, x2220)=Succ(x2224) & Succ(Succ(Succ(x2221)))=x2223 & Succ(Succ(Succ(x2220)))=x2222 ==> new_quot1(x2225, Neg(Succ(Succ(Succ(Succ(Succ(x2221)))))), Neg(Succ(Succ(Succ(Succ(Succ(x2220)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2221)))))))_>=_new_quot2(x2225, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2221))), Succ(Succ(Succ(x2220))), Succ(x2221), Succ(x2220))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2220)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2221))), Succ(Succ(Succ(x2220))), Succ(x2221), Succ(x2220))))) ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2221))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2220))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2221))))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2221)))), Succ(Succ(Succ(Succ(x2220)))), Succ(Succ(x2221)), Succ(Succ(x2220)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2220))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2221)))), Succ(Succ(Succ(Succ(x2220)))), Succ(Succ(x2221)), Succ(Succ(x2220)))))) (17) (new_primModNatS01(x2227, x2226)=Succ(x2193) & Succ(Succ(Succ(Zero)))=x2227 & Succ(Succ(Succ(Zero)))=x2226 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (18) (Succ(Succ(x2230))=Succ(x2193) & Succ(Succ(Succ(Zero)))=x2230 & Succ(Succ(Succ(Succ(x2228))))=x2229 ==> new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2228))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2228)))), Succ(Zero), Succ(Succ(x2228)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2228))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2228)))), Succ(Zero), Succ(Succ(x2228)))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2217))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2217))))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2217)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2217)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2217)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2217)), Succ(Zero))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2221))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2220))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2221))))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2221)))), Succ(Succ(Succ(Succ(x2220)))), Succ(Succ(x2221)), Succ(Succ(x2220)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2220))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2221)))), Succ(Succ(Succ(Succ(x2220)))), Succ(Succ(x2221)), Succ(Succ(x2220)))))) We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: (21) (new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: (22) (new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2228))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2228)))), Succ(Zero), Succ(Succ(x2228)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2228))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2228)))), Succ(Zero), Succ(Succ(x2228)))))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (23) (new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_quot1(x1636, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1637))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(x1636, False, Neg(Succ(Succ(Succ(Succ(x1637))))), Neg(Succ(Succ(Succ(Zero))))), new_quot2(x1638, False, x1639, x1640) -> new_quot1(x1638, x1639, x1640, Integer(Pos(Zero)), x1639) which results in the following constraint: (1) (new_quot2(x1636, False, Neg(Succ(Succ(Succ(Succ(x1637))))), Neg(Succ(Succ(Succ(Zero)))))=new_quot2(x1638, False, x1639, x1640) ==> new_quot1(x1636, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1637))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1636, False, Neg(Succ(Succ(Succ(Succ(x1637))))), Neg(Succ(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x1636, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1637))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1636, False, Neg(Succ(Succ(Succ(Succ(x1637))))), Neg(Succ(Succ(Succ(Zero)))))) For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698)))))) -> new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero))))), new_quot2(x1699, False, x1700, x1701) -> new_quot1(x1699, x1700, x1701, Integer(Pos(Zero)), x1700) which results in the following constraint: (1) (new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))=new_quot2(x1699, False, x1700, x1701) ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero))))=x2237 & Pos(Zero)=x2238 & new_primEqInt(x2237, x2238)=False ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2237, x2238)=False which results in the following new constraints: (3) (False=False & Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero))))=Neg(Succ(x2240)) & Pos(Zero)=Pos(x2239) ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) (4) (False=False & Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero))))=Pos(Succ(x2241)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (5) (Succ(x1698)=x2242 & Succ(Succ(Zero))=x2243 & new_primModNatS1(x2242, x2243)=Succ(x2240) ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x2242, x2243)=Succ(x2240) which results in the following new constraints: (6) (Succ(Zero)=Succ(x2240) & Succ(x1698)=Succ(Zero) & Succ(Succ(Zero))=Succ(x2244) ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) (7) (new_primModNatS1(new_primMinusNatS0(Succ(x2246), Zero), Zero)=Succ(x2240) & Succ(x1698)=Succ(Succ(x2246)) & Succ(Succ(Zero))=Zero ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) (8) (new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)=Succ(x2240) & Succ(x1698)=Succ(Zero) & Succ(Succ(Zero))=Zero ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) (9) (new_primModNatS02(x2248, x2247, x2248, x2247)=Succ(x2240) & Succ(x1698)=Succ(Succ(x2248)) & Succ(Succ(Zero))=Succ(x2247) ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(x1698))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1698))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x1698), Succ(Succ(Zero)))))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) We solved constraint (7) using rules (I), (II).We solved constraint (8) using rules (I), (II).We simplified constraint (9) using rules (I), (II), (III), (VII) which results in the following new constraint: (11) (x2248=x2249 & x2247=x2250 & new_primModNatS02(x2248, x2247, x2249, x2250)=Succ(x2240) & Succ(Zero)=x2247 ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(x2248)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2248)))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2248)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2248)), Succ(Succ(Zero)))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x2248, x2247, x2249, x2250)=Succ(x2240) which results in the following new constraints: (12) (new_primModNatS01(x2253, x2252)=Succ(x2240) & x2253=Succ(x2251) & x2252=Zero & Succ(Zero)=x2252 ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(x2253)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2253)))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2253)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2253)), Succ(Succ(Zero)))))) (13) (new_primModNatS02(x2257, x2256, x2255, x2254)=Succ(x2240) & x2257=Succ(x2255) & x2256=Succ(x2254) & Succ(Zero)=x2256 & (\/x2258,x2259:new_primModNatS02(x2257, x2256, x2255, x2254)=Succ(x2258) & x2257=x2255 & x2256=x2254 & Succ(Zero)=x2256 ==> new_quot1(x2259, Neg(Succ(Succ(Succ(Succ(Succ(x2257)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2257)))))))_>=_new_quot2(x2259, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2257)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2257)), Succ(Succ(Zero)))))) ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(x2257)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2257)))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2257)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2257)), Succ(Succ(Zero)))))) (14) (new_primModNatS01(x2261, x2260)=Succ(x2240) & x2261=Zero & x2260=Zero & Succ(Zero)=x2260 ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(x2261)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2261)))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2261)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2261)), Succ(Succ(Zero)))))) (15) (Succ(Succ(x2264))=Succ(x2240) & x2264=Zero & x2263=Succ(x2262) & Succ(Zero)=x2263 ==> new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(x2264)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2264)))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x2264)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x2264)), Succ(Succ(Zero)))))) We solved constraint (12) using rules (I), (II), (III).We simplified constraint (13) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (16) (new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2255))))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2255))))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x2255))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x2255))), Succ(Succ(Zero)))))) We solved constraint (14) using rules (I), (II), (III).We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (17) (new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) the following chains were created: *We consider the chain new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x1759))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1759)))))) -> new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1759, Zero, x1759, Zero))), new_quot2(x1760, False, x1761, x1762) -> new_quot1(x1760, x1761, x1762, Integer(Pos(Zero)), x1761) which results in the following constraint: (1) (new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1759, Zero, x1759, Zero)))=new_quot2(x1760, False, x1761, x1762) ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x1759))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1759))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1759, Zero, x1759, Zero)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS02(x1759, Zero, x1759, Zero))=x2267 & Pos(Zero)=x2268 & new_primEqInt(x2267, x2268)=False ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x1759))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1759))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1759, Zero, x1759, Zero)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x2267, x2268)=False which results in the following new constraints: (3) (False=False & Neg(new_primModNatS02(x1759, Zero, x1759, Zero))=Neg(Succ(x2270)) & Pos(Zero)=Pos(x2269) ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x1759))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1759))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1759, Zero, x1759, Zero)))) (4) (False=False & Neg(new_primModNatS02(x1759, Zero, x1759, Zero))=Pos(Succ(x2271)) & Pos(Zero)=Pos(Zero) ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x1759))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1759))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1759, Zero, x1759, Zero)))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (5) (Zero=x2272 & x1759=x2273 & Zero=x2274 & new_primModNatS02(x1759, x2272, x2273, x2274)=Succ(x2270) ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x1759))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x1759))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x1759, Zero, x1759, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1759, Zero, x1759, Zero)))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1759, x2272, x2273, x2274)=Succ(x2270) which results in the following new constraints: (6) (new_primModNatS01(x2277, x2276)=Succ(x2270) & Zero=x2276 & x2277=Succ(x2275) & Zero=Zero ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x2277))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2277))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x2277, Zero, x2277, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x2277, Zero, x2277, Zero)))) (7) (new_primModNatS02(x2281, x2280, x2279, x2278)=Succ(x2270) & Zero=x2280 & x2281=Succ(x2279) & Zero=Succ(x2278) & (\/x2282,x2283:new_primModNatS02(x2281, x2280, x2279, x2278)=Succ(x2282) & Zero=x2280 & x2281=x2279 & Zero=x2278 ==> new_quot1(x2283, Neg(Succ(Succ(Succ(Succ(x2281))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2281))))))_>=_new_quot2(x2283, new_primEqInt(Neg(new_primModNatS02(x2281, Zero, x2281, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x2281, Zero, x2281, Zero)))) ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x2281))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2281))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x2281, Zero, x2281, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x2281, Zero, x2281, Zero)))) (8) (new_primModNatS01(x2285, x2284)=Succ(x2270) & Zero=x2284 & x2285=Zero & Zero=Zero ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x2285))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2285))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x2285, Zero, x2285, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x2285, Zero, x2285, Zero)))) (9) (Succ(Succ(x2288))=Succ(x2270) & Zero=x2287 & x2288=Zero & Zero=Succ(x2286) ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(x2288))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2288))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(x2288, Zero, x2288, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x2288, Zero, x2288, Zero)))) We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (10) (Succ(x2275)=x2289 & new_primModNatS01(x2289, x2276)=Succ(x2270) & Zero=x2276 ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(Succ(x2275)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2275)))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(Succ(x2275), Zero, Succ(x2275), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2275), Zero, Succ(x2275), Zero)))) We solved constraint (7) using rules (I), (II).We simplified constraint (8) using rules (I), (II), (III), (VII) which results in the following new constraint: (11) (Zero=x2296 & new_primModNatS01(x2296, x2284)=Succ(x2270) & Zero=x2284 ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) We solved constraint (9) using rules (I), (II).We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2289, x2276)=Succ(x2270) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS0(Succ(x2291), Succ(x2290)), Succ(x2290))=Succ(x2270) & Succ(x2275)=x2291 & Zero=x2290 ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(Succ(x2275)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2275)))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(Succ(x2275), Zero, Succ(x2275), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2275), Zero, Succ(x2275), Zero)))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (13) (new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(Succ(x2275)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2275)))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(Succ(x2275), Zero, Succ(x2275), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2275), Zero, Succ(x2275), Zero)))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x2296, x2284)=Succ(x2270) which results in the following new constraint: (14) (new_primModNatS1(new_primMinusNatS0(Succ(x2298), Succ(x2297)), Succ(x2297))=Succ(x2270) & Zero=x2298 & Zero=x2297 ==> new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) We simplified constraint (14) using rules (III), (IV), (VII) which results in the following new constraint: (15) (new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) For Pair new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) the following chains were created: *We consider the chain new_quot1(x1819, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(x1819, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))), new_quot2(x1820, False, x1821, x1822) -> new_quot1(x1820, x1821, x1822, Integer(Pos(Zero)), x1821) which results in the following constraint: (1) (new_quot2(x1819, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))=new_quot2(x1820, False, x1821, x1822) ==> new_quot1(x1819, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1819, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_quot1(x1819, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1819, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) *(new_quot2(x3, False, Pos(Succ(Zero)), Neg(Succ(Succ(x7))))_>=_new_quot1(x3, Pos(Succ(Zero)), Neg(Succ(Succ(x7))), Integer(Pos(Zero)), Pos(Succ(Zero)))) *(new_quot2(x8, False, Pos(Succ(Zero)), Pos(Succ(Succ(x12))))_>=_new_quot1(x8, Pos(Succ(Zero)), Pos(Succ(Succ(x12))), Integer(Pos(Zero)), Pos(Succ(Zero)))) *(new_quot2(x13, False, Neg(Succ(Zero)), Pos(Succ(Succ(x17))))_>=_new_quot1(x13, Neg(Succ(Zero)), Pos(Succ(Succ(x17))), Integer(Pos(Zero)), Neg(Succ(Zero)))) *(new_quot2(x18, False, Neg(Succ(Zero)), Neg(Succ(Succ(x22))))_>=_new_quot1(x18, Neg(Succ(Zero)), Neg(Succ(Succ(x22))), Integer(Pos(Zero)), Neg(Succ(Zero)))) *(new_quot2(x23, False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x27)))))_>=_new_quot1(x23, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x27)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))) *(new_quot2(x28, False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x32)))))_>=_new_quot1(x28, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x32)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))) *(new_quot2(x33, False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x37)))))_>=_new_quot1(x33, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x37)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))) *(new_quot2(x38, False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x42)))))_>=_new_quot1(x38, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x42)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))) *(new_quot2(x43, False, Pos(Succ(Succ(Succ(Succ(x47))))), Neg(Succ(Succ(Succ(Succ(x48))))))_>=_new_quot1(x43, Pos(Succ(Succ(Succ(Succ(x47))))), Neg(Succ(Succ(Succ(Succ(x48))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x47))))))) *(new_quot2(x49, False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x53))))))_>=_new_quot1(x49, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x53))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) *(new_quot2(x54, False, Pos(Succ(Succ(Succ(Succ(x58))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x54, Pos(Succ(Succ(Succ(Succ(x58))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x58))))))) *(new_quot2(x59, False, Pos(Succ(Succ(Succ(Succ(x63))))), Neg(Succ(Succ(Zero))))_>=_new_quot1(x59, Pos(Succ(Succ(Succ(Succ(x63))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x63))))))) *(new_quot2(x64, False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_quot1(x64, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) *(new_quot2(x68, False, Pos(Succ(Succ(Succ(Succ(x72))))), Pos(Succ(Succ(Succ(Succ(x73))))))_>=_new_quot1(x68, Pos(Succ(Succ(Succ(Succ(x72))))), Pos(Succ(Succ(Succ(Succ(x73))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x72))))))) *(new_quot2(x74, False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x78))))))_>=_new_quot1(x74, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x78))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) *(new_quot2(x79, False, Pos(Succ(Succ(Succ(Succ(x83))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x79, Pos(Succ(Succ(Succ(Succ(x83))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x83))))))) *(new_quot2(x84, False, Pos(Succ(Succ(Succ(Succ(x88))))), Pos(Succ(Succ(Zero))))_>=_new_quot1(x84, Pos(Succ(Succ(Succ(Succ(x88))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x88))))))) *(new_quot2(x89, False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_quot1(x89, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))) *(new_quot2(x93, False, Neg(Succ(Succ(Succ(Succ(x97))))), Pos(Succ(Succ(Succ(Succ(x98))))))_>=_new_quot1(x93, Neg(Succ(Succ(Succ(Succ(x97))))), Pos(Succ(Succ(Succ(Succ(x98))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x97))))))) *(new_quot2(x99, False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))))_>=_new_quot1(x99, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) *(new_quot2(x104, False, Neg(Succ(Succ(Succ(Succ(x108))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x104, Neg(Succ(Succ(Succ(Succ(x108))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x108))))))) *(new_quot2(x109, False, Neg(Succ(Succ(Succ(Succ(x113))))), Pos(Succ(Succ(Zero))))_>=_new_quot1(x109, Neg(Succ(Succ(Succ(Succ(x113))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x113))))))) *(new_quot2(x114, False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_quot1(x114, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) *(new_quot2(x118, False, Neg(Succ(Succ(Succ(Succ(x122))))), Neg(Succ(Succ(Succ(Succ(x123))))))_>=_new_quot1(x118, Neg(Succ(Succ(Succ(Succ(x122))))), Neg(Succ(Succ(Succ(Succ(x123))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x122))))))) *(new_quot2(x124, False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x128))))))_>=_new_quot1(x124, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x128))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) *(new_quot2(x129, False, Neg(Succ(Succ(Succ(Succ(x133))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot1(x129, Neg(Succ(Succ(Succ(Succ(x133))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x133))))))) *(new_quot2(x134, False, Neg(Succ(Succ(Succ(Succ(x138))))), Neg(Succ(Succ(Zero))))_>=_new_quot1(x134, Neg(Succ(Succ(Succ(Succ(x138))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x138))))))) *(new_quot2(x139, False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_quot1(x139, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))) *new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) *(new_quot1(x143, Pos(Succ(Zero)), Neg(Succ(Succ(x144))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x143, False, Neg(Succ(Succ(x144))), Pos(Succ(Zero)))) *new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) *(new_quot1(x204, Pos(Succ(Zero)), Pos(Succ(Succ(x205))), Integer(Pos(Zero)), Pos(Succ(Zero)))_>=_new_quot2(x204, False, Pos(Succ(Succ(x205))), Pos(Succ(Zero)))) *new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) *(new_quot1(x265, Neg(Succ(Zero)), Pos(Succ(Succ(x266))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x265, False, Pos(Succ(Succ(x266))), Neg(Succ(Zero)))) *new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) *(new_quot1(x326, Neg(Succ(Zero)), Neg(Succ(Succ(x327))), Integer(Pos(Zero)), Neg(Succ(Zero)))_>=_new_quot2(x326, False, Neg(Succ(Succ(x327))), Neg(Succ(Zero)))) *new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) *(new_quot1(x387, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x388)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))_>=_new_quot2(x387, False, Neg(Succ(Succ(Succ(x388)))), Pos(Succ(Succ(Zero))))) *new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) *(new_quot1(x448, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x449)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero))))_>=_new_quot2(x448, False, Pos(Succ(Succ(Succ(x449)))), Pos(Succ(Succ(Zero))))) *new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) *(new_quot1(x509, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x510)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))_>=_new_quot2(x509, False, Pos(Succ(Succ(Succ(x510)))), Neg(Succ(Succ(Zero))))) *new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) *(new_quot1(x570, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x571)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero))))_>=_new_quot2(x570, False, Neg(Succ(Succ(Succ(x571)))), Neg(Succ(Succ(Zero))))) *new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1889))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1889)))), Succ(Zero), Succ(Succ(x1889)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1889))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1889)))), Succ(Zero), Succ(Succ(x1889)))))) *(new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x1869)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1869))), Zero, Succ(x1869))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x1869)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1869))), Zero, Succ(x1869))))) *(new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(x1858)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1858)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1858))), Succ(Succ(Zero)), Succ(x1858), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1858))), Succ(Succ(Zero)), Succ(x1858), Zero)))) *(new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1878))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1878))))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1878)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1878)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1878)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1878)), Succ(Zero))))) *(new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1882))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1881))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1882))))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1882)))), Succ(Succ(Succ(Succ(x1881)))), Succ(Succ(x1882)), Succ(Succ(x1881)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1881))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1882)))), Succ(Succ(Succ(Succ(x1881)))), Succ(Succ(x1882)), Succ(Succ(x1881)))))) *(new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_quot1(x631, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x631, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) *(new_quot1(x721, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x722))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x721, False, Neg(Succ(Succ(Succ(Succ(x722))))), Pos(Succ(Succ(Succ(Zero)))))) *new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) *(new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) *(new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) *(new_quot1(x782, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1916))))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1916))))))))_>=_new_quot2(x782, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x1916))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x1916))), Succ(Succ(Zero)))))) *new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) *(new_quot1(x843, Pos(Succ(Succ(Succ(Succ(Succ(x1936)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1936)))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(Succ(x1936), Zero, Succ(x1936), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x1936), Zero, Succ(x1936), Zero)))) *(new_quot1(x843, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x843, new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) *new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) *(new_quot1(x904, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x904, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) *new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2002))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2002)))), Succ(Zero), Succ(Succ(x2002)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2002))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2002)))), Succ(Zero), Succ(Succ(x2002)))))) *(new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x1982)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1982))), Zero, Succ(x1982))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1982)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1982))), Zero, Succ(x1982))))) *(new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(x1971)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x1971)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x1971))), Succ(Succ(Zero)), Succ(x1971), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x1971))), Succ(Succ(Zero)), Succ(x1971), Zero)))) *(new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1991))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1991))))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1991)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1991)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1991)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1991)), Succ(Zero))))) *(new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1995))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1994))))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1995))))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1995)))), Succ(Succ(Succ(Succ(x1994)))), Succ(Succ(x1995)), Succ(Succ(x1994)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1994))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x1995)))), Succ(Succ(Succ(Succ(x1994)))), Succ(Succ(x1995)), Succ(Succ(x1994)))))) *(new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_quot1(x936, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x936, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) *(new_quot1(x1026, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1027))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1026, False, Pos(Succ(Succ(Succ(Succ(x1027))))), Pos(Succ(Succ(Succ(Zero)))))) *new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) *(new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) *(new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) *(new_quot1(x1087, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2029))))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2029))))))))_>=_new_quot2(x1087, new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x2029))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x2029))), Succ(Succ(Zero)))))) *new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) *(new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(Succ(x2049)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2049)))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(Succ(x2049), Zero, Succ(x2049), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2049), Zero, Succ(x2049), Zero)))) *(new_quot1(x1148, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1148, new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) *new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) *(new_quot1(x1209, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1209, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) *new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2115))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2115)))), Succ(Zero), Succ(Succ(x2115)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2115))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2115)))), Succ(Zero), Succ(Succ(x2115)))))) *(new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x2095)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2095))), Zero, Succ(x2095))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x2095)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2095))), Zero, Succ(x2095))))) *(new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(x2084)))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2084)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2084))), Succ(Succ(Zero)), Succ(x2084), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2084))), Succ(Succ(Zero)), Succ(x2084), Zero)))) *(new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2104))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2104))))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2104)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2104)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2104)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2104)), Succ(Zero))))) *(new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2108))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2107))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2108))))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2108)))), Succ(Succ(Succ(Succ(x2107)))), Succ(Succ(x2108)), Succ(Succ(x2107)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x2107))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2108)))), Succ(Succ(Succ(Succ(x2107)))), Succ(Succ(x2108)), Succ(Succ(x2107)))))) *(new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_quot1(x1241, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1241, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) *(new_quot1(x1331, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x1332))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1331, False, Pos(Succ(Succ(Succ(Succ(x1332))))), Neg(Succ(Succ(Succ(Zero)))))) *new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) *(new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) *(new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) *(new_quot1(x1392, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2142))))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2142))))))))_>=_new_quot2(x1392, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x2142))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x2142))), Succ(Succ(Zero)))))) *new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) *(new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(Succ(x2162)))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2162)))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(Succ(x2162), Zero, Succ(x2162), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2162), Zero, Succ(x2162), Zero)))) *(new_quot1(x1453, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1453, new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) *new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) *(new_quot1(x1514, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1514, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) *new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2228))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2228)))), Succ(Zero), Succ(Succ(x2228)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2228))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x2228)))), Succ(Zero), Succ(Succ(x2228)))))) *(new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x2208)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2208))), Zero, Succ(x2208))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2208)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x2208))), Zero, Succ(x2208))))) *(new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(x2197)))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2197)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x2197))), Succ(Succ(Zero)), Succ(x2197), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x2197))), Succ(Succ(Zero)), Succ(x2197), Zero)))) *(new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2217))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2217))))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2217)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2217)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2217)))), Succ(Succ(Succ(Zero))), Succ(Succ(x2217)), Succ(Zero))))) *(new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2221))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2220))))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2221))))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2221)))), Succ(Succ(Succ(Succ(x2220)))), Succ(Succ(x2221)), Succ(Succ(x2220)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2220))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x2221)))), Succ(Succ(Succ(Succ(x2220)))), Succ(Succ(x2221)), Succ(Succ(x2220)))))) *(new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_quot1(x1546, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1546, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) *(new_quot1(x1636, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1637))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1636, False, Neg(Succ(Succ(Succ(Succ(x1637))))), Neg(Succ(Succ(Succ(Zero)))))) *new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) *(new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) *(new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) *(new_quot1(x1697, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2255))))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x2255))))))))_>=_new_quot2(x1697, new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x2255))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x2255))), Succ(Succ(Zero)))))) *new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) *(new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(Succ(x2275)))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x2275)))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(Succ(x2275), Zero, Succ(x2275), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2275), Zero, Succ(x2275), Zero)))) *(new_quot1(x1758, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_quot2(x1758, new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) *new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) *(new_quot1(x1819, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))))_>=_new_quot2(x1819, False, Neg(Succ(Succ(Zero))), Neg(Succ(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. ---------------------------------------- (591) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot2(vuz360, False, vuz94, vuz165) -> new_quot1(vuz360, vuz94, vuz165, Integer(Pos(Zero)), vuz94) new_quot1(y0, Pos(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Pos(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Pos(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Zero)), Neg(Succ(Succ(x0))), Integer(Pos(Zero)), Neg(Succ(Zero))) -> new_quot2(y0, False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Pos(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))), Integer(Pos(Zero)), Neg(Succ(Succ(Zero)))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_quot1(y0, Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_quot2(y0, new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_quot1(y0, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))), Integer(Pos(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_quot2(y0, False, Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (592) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot3(vuz194, vuz195, Succ(vuz1960), Succ(vuz1970), vuz198, vuz199) -> new_quot3(vuz194, vuz195, vuz1960, vuz1970, vuz198, vuz199) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (593) 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_quot3(vuz194, vuz195, Succ(vuz1960), Succ(vuz1970), vuz198, vuz199) -> new_quot3(vuz194, vuz195, vuz1960, vuz1970, vuz198, vuz199) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4, 5 >= 5, 6 >= 6 ---------------------------------------- (594) YES ---------------------------------------- (595) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot5(vuz151, vuz152, Succ(vuz1530), Succ(vuz1540), vuz155, vuz156) -> new_quot5(vuz151, vuz152, vuz1530, vuz1540, vuz155, vuz156) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (596) 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_quot5(vuz151, vuz152, Succ(vuz1530), Succ(vuz1540), vuz155, vuz156) -> new_quot5(vuz151, vuz152, vuz1530, vuz1540, vuz155, vuz156) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4, 5 >= 5, 6 >= 6 ---------------------------------------- (597) YES ---------------------------------------- (598) Obligation: Q DP problem: The TRS P consists of the following rules: new_absReal1(vuz130, Succ(vuz1310), Succ(vuz1320)) -> new_absReal1(vuz130, vuz1310, vuz1320) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (599) 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_absReal1(vuz130, Succ(vuz1310), Succ(vuz1320)) -> new_absReal1(vuz130, vuz1310, vuz1320) The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3 ---------------------------------------- (600) YES ---------------------------------------- (601) Obligation: Q DP problem: The TRS P consists of the following rules: new_absReal10(vuz104, Succ(vuz1050), Succ(vuz1060)) -> new_absReal10(vuz104, vuz1050, vuz1060) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (602) 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_absReal10(vuz104, Succ(vuz1050), Succ(vuz1060)) -> new_absReal10(vuz104, vuz1050, vuz1060) The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3 ---------------------------------------- (603) YES ---------------------------------------- (604) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Succ(Zero), Zero) -> new_primModNatS(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS0(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS00(vuz158, vuz159) -> new_primModNatS(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS0(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS(Succ(Succ(vuz69000)), Zero) -> new_primModNatS(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS0(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS0(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS0(vuz158, vuz159, Zero, Zero) -> new_primModNatS00(vuz158, vuz159) The TRS R consists of the following rules: new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (605) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (606) Complex Obligation (AND) ---------------------------------------- (607) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS0(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS0(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS0(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS0(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS0(vuz158, vuz159, Zero, Zero) -> new_primModNatS00(vuz158, vuz159) new_primModNatS00(vuz158, vuz159) -> new_primModNatS(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) The TRS R consists of the following rules: new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (608) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_primModNatS0(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) at position [0] we obtained the following new rules [LPAR04]: (new_primModNatS0(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS(new_primMinusNatS0(vuz158, vuz159), Succ(vuz159)),new_primModNatS0(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS(new_primMinusNatS0(vuz158, vuz159), Succ(vuz159))) ---------------------------------------- (609) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS0(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS0(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS0(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS0(vuz158, vuz159, Zero, Zero) -> new_primModNatS00(vuz158, vuz159) new_primModNatS00(vuz158, vuz159) -> new_primModNatS(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS0(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS(new_primMinusNatS0(vuz158, vuz159), Succ(vuz159)) The TRS R consists of the following rules: new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (610) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_primModNatS00(vuz158, vuz159) -> new_primModNatS(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) at position [0] we obtained the following new rules [LPAR04]: (new_primModNatS00(vuz158, vuz159) -> new_primModNatS(new_primMinusNatS0(vuz158, vuz159), Succ(vuz159)),new_primModNatS00(vuz158, vuz159) -> new_primModNatS(new_primMinusNatS0(vuz158, vuz159), Succ(vuz159))) ---------------------------------------- (611) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS0(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS0(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS0(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS0(vuz158, vuz159, Zero, Zero) -> new_primModNatS00(vuz158, vuz159) new_primModNatS0(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS(new_primMinusNatS0(vuz158, vuz159), Succ(vuz159)) new_primModNatS00(vuz158, vuz159) -> new_primModNatS(new_primMinusNatS0(vuz158, vuz159), Succ(vuz159)) The TRS R consists of the following rules: new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (612) 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(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS0(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_primModNatS0(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS(new_primMinusNatS0(vuz158, vuz159), Succ(vuz159)) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1 *new_primModNatS00(vuz158, vuz159) -> new_primModNatS(new_primMinusNatS0(vuz158, vuz159), Succ(vuz159)) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1 *new_primModNatS(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS0(vuz69000, vuz68000, vuz69000, vuz68000) (allowed arguments on rhs = {1, 2, 3, 4}) The graph contains the following edges 1 > 1, 2 > 2, 1 > 3, 2 > 4 *new_primModNatS0(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS0(vuz158, vuz159, vuz1600, vuz1610) (allowed arguments on rhs = {1, 2, 3, 4}) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 *new_primModNatS0(vuz158, vuz159, Zero, Zero) -> new_primModNatS00(vuz158, vuz159) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1, 2 >= 2 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) ---------------------------------------- (613) YES ---------------------------------------- (614) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Succ(Succ(vuz69000)), Zero) -> new_primModNatS(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) The TRS R consists of the following rules: new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (615) 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(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS0(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_primModNatS(Succ(Succ(vuz69000)), Zero) -> new_primModNatS(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 > 1, 2 >= 2 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) ---------------------------------------- (616) YES ---------------------------------------- (617) Obligation: Q DP problem: The TRS P consists of the following rules: new_primMulNat(Succ(vuz9100), Succ(vuz30100)) -> new_primMulNat(vuz9100, Succ(vuz30100)) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (618) 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_primMulNat(Succ(vuz9100), Succ(vuz30100)) -> new_primMulNat(vuz9100, Succ(vuz30100)) The graph contains the following edges 1 > 1, 2 >= 2 ---------------------------------------- (619) YES ---------------------------------------- (620) Obligation: Q DP problem: The TRS P consists of the following rules: new_primMinusNatS(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS(vuz880, vuz890) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (621) 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(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS(vuz880, vuz890) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (622) YES ---------------------------------------- (623) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot4(vuz187, vuz188, Succ(vuz1890), Succ(vuz1900), vuz191, vuz192) -> new_quot4(vuz187, vuz188, vuz1890, vuz1900, vuz191, vuz192) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (624) 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_quot4(vuz187, vuz188, Succ(vuz1890), Succ(vuz1900), vuz191, vuz192) -> new_quot4(vuz187, vuz188, vuz1890, vuz1900, vuz191, vuz192) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4, 5 >= 5, 6 >= 6 ---------------------------------------- (625) YES ---------------------------------------- (626) Obligation: Q DP problem: The TRS P consists of the following rules: new_enforceWHNF(vuz7, :(vuz80, vuz81), h) -> new_enforceWHNF(new_ps(vuz7, vuz80, h), vuz81, h) The TRS R consists of the following rules: new_absReal19(vuz130, Succ(vuz1310), Zero) -> new_absReal111(vuz130) new_primDivNatS1(Succ(Zero), Zero) -> Succ(new_primDivNatS1(new_primMinusNatS2, Zero)) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_quot20(vuz360, Integer(Pos(Zero)), Integer(Pos(Zero)), vuz62, vuz370, vuz70) -> new_quot48(vuz360, vuz62, vuz370) new_absReal16(Neg(Zero), Neg(Succ(vuz7200))) -> new_absReal15 new_primPlusNat0(Zero, Zero) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMulInt(Pos(vuz910), Neg(vuz3010)) -> Neg(new_primMulNat0(vuz910, vuz3010)) new_primMulInt(Neg(vuz910), Pos(vuz3010)) -> Neg(new_primMulNat0(vuz910, vuz3010)) new_quot35(vuz182, vuz183) -> new_quot17(vuz182, Neg(Succ(vuz183))) new_quot28(vuz360, Pos(Zero), Integer(Pos(Succ(vuz102000)))) -> new_quot17(vuz360, new_primNegInt1) new_primDivNatS1(Zero, vuz5600) -> Zero new_quot13(vuz360, True, vuz370, vuz94) -> new_quot28(vuz360, vuz370, new_fromInt0) new_primMinusNatS2 -> Zero new_sr0(Integer(vuz230), Integer(vuz210)) -> Integer(new_primMulInt(vuz230, vuz210)) new_primPlusInt(Neg(vuz120), Neg(vuz300)) -> Neg(new_primPlusNat0(vuz120, vuz300)) new_primDivNatS02(vuz97, vuz98, Zero, Zero) -> new_primDivNatS01(vuz97, vuz98) new_quot28(vuz360, Neg(Zero), Integer(Neg(Zero))) -> new_quot7(vuz360) new_quot51(vuz151, vuz152, Zero, Zero, vuz155, vuz156) -> new_quot31(vuz151, vuz152, vuz155, vuz156) new_quot28(vuz360, Pos(Zero), Integer(Neg(Succ(vuz102000)))) -> new_quot23(vuz360) new_quot28(vuz360, Pos(Succ(vuz37000)), Integer(Pos(vuz10200))) -> new_quot15(vuz360, vuz37000, Succ(vuz37000), vuz10200) new_quot37(vuz360, Neg(Zero), Integer(Neg(Zero)), vuz94, vuz101, vuz109) -> new_quot42(vuz360, vuz94, vuz101) new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_quot20(vuz360, Integer(Neg(Succ(vuz38000))), Integer(Pos(vuz7100)), vuz62, vuz370, vuz70) -> new_quot50(vuz360, vuz38000, vuz62, vuz370) new_gcd1(False, vuz31, vuz30) -> new_gcd0(vuz31, vuz30) new_primDivNatS1(Succ(Zero), Succ(vuz56000)) -> Zero new_quot11(vuz141, vuz142, Zero, Zero, vuz145, vuz146) -> new_quot14(vuz141, vuz142, vuz145, vuz146) new_primDivNatS02(vuz97, vuz98, Succ(vuz990), Zero) -> new_primDivNatS01(vuz97, vuz98) new_quot43(vuz360, vuz94, vuz101) -> new_quot33(vuz360, Neg(Zero), vuz94, vuz101, Neg(Zero)) new_quot37(vuz360, Pos(Succ(vuz37000)), Integer(Pos(vuz11000)), vuz94, vuz101, vuz109) -> new_quot38(vuz360, vuz37000, Succ(vuz37000), vuz11000, vuz94, vuz101) new_quot27(vuz360, vuz370, vuz94, vuz101) -> new_quot37(vuz360, vuz370, new_fromInt0, vuz94, vuz101, new_fromInt0) new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_quot37(vuz360, Pos(Zero), Integer(Neg(Zero)), vuz94, vuz101, vuz109) -> new_quot39(vuz360, vuz94, vuz101) new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2600))) -> False new_quot48(vuz360, vuz62, vuz370) -> new_quot49(vuz360, vuz62, vuz370) new_gcd0Gcd'10(False, vuz68, vuz69) -> new_gcd0Gcd'00(vuz68, new_rem(vuz69, vuz68)) new_quot37(vuz360, Neg(Zero), Integer(Pos(Zero)), vuz94, vuz101, vuz109) -> new_quot42(vuz360, vuz94, vuz101) new_primQuotInt1(Neg(vuz3600), Neg(Succ(vuz13600))) -> Pos(new_primDivNatS1(vuz3600, vuz13600)) new_quot34(vuz182, vuz183, Succ(vuz1840), Succ(vuz1850)) -> new_quot34(vuz182, vuz183, vuz1840, vuz1850) new_gcd0Gcd'11(True, vuz31, vuz30) -> new_abs(vuz31) new_primMinusNat0(Zero, Zero) -> Pos(Zero) new_primPlusInt(Pos(vuz120), Neg(vuz300)) -> new_primMinusNat0(vuz120, vuz300) new_primPlusInt(Neg(vuz120), Pos(vuz300)) -> new_primMinusNat0(vuz300, vuz120) new_quot20(vuz360, Integer(Pos(Zero)), Integer(Pos(Succ(vuz71000))), vuz62, vuz370, vuz70) -> new_quot13(vuz360, new_esEs0(new_primNegInt1, vuz62), vuz370, new_primNegInt1) new_primDivNatS02(vuz97, vuz98, Succ(vuz990), Succ(vuz1000)) -> new_primDivNatS02(vuz97, vuz98, vuz990, vuz1000) new_primEqNat0(Succ(vuz27000), Succ(vuz26000)) -> new_primEqNat0(vuz27000, vuz26000) new_primQuotInt0(vuz290, Neg(Zero)) -> new_error new_rem(vuz69, vuz68) -> new_primRemInt(vuz69, vuz68) new_primQuotInt(vuz290, Neg(Zero)) -> new_error new_quot45(vuz360, True, vuz370, vuz380) -> error([]) new_sr(vuz91, vuz301) -> new_primMulInt(vuz91, vuz301) new_ps(vuz7, vuz80, app(ty_Ratio, ba)) -> new_ps4(vuz7, vuz80, ba) new_quot14(vuz360, vuz38000, vuz62, vuz370) -> new_quot13(vuz360, new_esEs0(Pos(Succ(vuz38000)), vuz62), vuz370, Pos(Succ(vuz38000))) new_quot20(vuz360, Integer(Neg(Zero)), Integer(Pos(Zero)), vuz62, vuz370, vuz70) -> new_quot9(vuz360, vuz62, vuz370) new_quot42(vuz360, vuz94, vuz101) -> new_quot43(vuz360, vuz94, vuz101) new_absReal16(Pos(Zero), Pos(Succ(vuz7200))) -> new_primNegInt1 new_primMulNat0(Zero, Zero) -> Zero new_primQuotInt(vuz290, Pos(Succ(vuz5600))) -> Pos(new_primDivNatS1(vuz290, vuz5600)) new_quot34(vuz182, vuz183, Succ(vuz1840), Zero) -> new_quot35(vuz182, vuz183) new_quot47(vuz360, Integer(vuz380), Integer(vuz530), vuz370) -> new_quot45(vuz360, new_primEqInt(vuz380, vuz530), vuz370, vuz380) new_absReal16(Neg(Succ(vuz3000)), Pos(vuz720)) -> new_absReal11(vuz3000) new_absReal12(vuz104, Succ(vuz1050), Zero) -> new_absReal13(vuz104) new_gcd0(vuz31, vuz30) -> new_gcd0Gcd'11(new_esEs(new_abs(vuz30), new_fromInt), vuz31, vuz30) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_quot54(vuz23, vuz21, vuz20, vuz22, ty_Integer) -> new_quot25(new_sr0(vuz23, vuz21), new_ps2(new_sr0(vuz20, vuz21), new_sr0(vuz22, vuz23)), vuz23, vuz21) new_primMulNat0(Succ(vuz9100), Succ(vuz30100)) -> new_primPlusNat0(new_primMulNat0(vuz9100, Succ(vuz30100)), Succ(vuz30100)) new_esEs1(vuz131, vuz301, ty_Int) -> new_esEs(new_sr(vuz131, vuz301), new_fromInt) new_absReal16(Pos(Succ(vuz3000)), Neg(vuz720)) -> new_absReal13(vuz3000) new_quot7(vuz360) -> new_quot8(vuz360) new_absReal15 -> Neg(Zero) new_primQuotInt(vuz290, Pos(Zero)) -> new_error new_gcd0Gcd'11(False, vuz31, vuz30) -> new_gcd0Gcd'00(new_abs(vuz31), new_abs(vuz30)) new_quot15(vuz177, vuz178, Succ(vuz1790), Succ(vuz1800)) -> new_quot15(vuz177, vuz178, vuz1790, vuz1800) new_quot29(vuz360, vuz37000, vuz94, vuz101) -> new_quot30(vuz360, vuz37000, vuz94, vuz101) new_quot28(vuz360, Neg(Zero), Integer(Neg(Succ(vuz102000)))) -> new_quot8(vuz360) new_primEqNat0(Succ(vuz27000), Zero) -> False new_primEqNat0(Zero, Succ(vuz26000)) -> False new_primNegInt0(vuz104) -> Neg(Succ(vuz104)) new_primQuotInt0(vuz290, Pos(Succ(vuz5900))) -> Neg(new_primDivNatS1(vuz290, vuz5900)) new_absReal19(vuz130, Succ(vuz1310), Succ(vuz1320)) -> new_absReal19(vuz130, vuz1310, vuz1320) new_quot16(vuz360, vuz37000) -> new_quot18(vuz360, vuz37000) new_quot15(vuz177, vuz178, Succ(vuz1790), Zero) -> new_quot16(vuz177, vuz178) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primMinusNat0(Succ(vuz1200), Zero) -> Pos(Succ(vuz1200)) new_quot41(vuz194, vuz195, Zero, Zero, vuz198, vuz199) -> new_quot52(vuz194, vuz195, vuz198, vuz199) new_absReal16(Pos(Succ(vuz3000)), Pos(vuz720)) -> new_absReal12(vuz3000, Succ(vuz3000), vuz720) new_quot20(vuz360, Integer(Neg(Zero)), Integer(Neg(Zero)), vuz62, vuz370, vuz70) -> new_quot9(vuz360, vuz62, vuz370) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primQuotInt1(Pos(vuz3600), Pos(Zero)) -> new_error new_absReal12(vuz104, Zero, Zero) -> new_absReal14(vuz104) new_quot34(vuz182, vuz183, Zero, Zero) -> new_quot35(vuz182, vuz183) new_primPlusInt(Pos(vuz120), Pos(vuz300)) -> Pos(new_primPlusNat0(vuz120, vuz300)) new_quot19(vuz360, vuz38, vuz62, vuz370) -> new_quot20(vuz360, vuz38, new_fromInt0, vuz62, vuz370, new_fromInt0) new_primQuotInt1(Pos(vuz3600), Pos(Succ(vuz13600))) -> Pos(new_primDivNatS1(vuz3600, vuz13600)) new_primEqInt(Neg(Succ(vuz2700)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2600))) -> False new_absReal18 -> Pos(Zero) new_absReal16(Pos(Zero), Neg(Succ(vuz7200))) -> new_absReal18 new_primEqInt(Pos(Succ(vuz2700)), Pos(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_quot8(vuz360) -> new_quot17(vuz360, Neg(Zero)) new_esEs1(vuz131, vuz301, ty_Integer) -> new_esEs2(vuz131, vuz301, new_fromInt0) new_quot18(vuz360, vuz37000) -> new_quot17(vuz360, Pos(Succ(vuz37000))) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_absReal111(vuz130) -> Neg(Succ(vuz130)) new_quot51(vuz151, vuz152, Succ(vuz1530), Succ(vuz1540), vuz155, vuz156) -> new_quot51(vuz151, vuz152, vuz1530, vuz1540, vuz155, vuz156) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_gcd2(False, vuz31, vuz30) -> new_gcd0(vuz31, vuz30) new_quot38(vuz187, vuz188, Zero, Succ(vuz1900), vuz191, vuz192) -> new_quot33(vuz187, new_primNegInt0(vuz188), vuz191, vuz192, new_primNegInt0(vuz188)) new_absReal16(Pos(Zero), Neg(Zero)) -> new_absReal17 new_quot41(vuz194, vuz195, Succ(vuz1960), Succ(vuz1970), vuz198, vuz199) -> new_quot41(vuz194, vuz195, vuz1960, vuz1970, vuz198, vuz199) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primEqInt(Pos(Succ(vuz2700)), Neg(vuz260)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_quot41(vuz194, vuz195, Succ(vuz1960), Zero, vuz198, vuz199) -> new_quot52(vuz194, vuz195, vuz198, vuz199) new_quot37(vuz360, Pos(Zero), Integer(Pos(Zero)), vuz94, vuz101, vuz109) -> new_quot39(vuz360, vuz94, vuz101) new_absReal17 -> new_absReal18 new_quot30(vuz360, vuz37000, vuz94, vuz101) -> new_quot33(vuz360, Pos(Succ(vuz37000)), vuz94, vuz101, Pos(Succ(vuz37000))) new_quot53(vuz20, vuz21, vuz22, vuz23, ty_Int) -> new_quot55(new_ps3(new_sr(vuz20, vuz21), new_sr(vuz22, vuz23)), new_ps3(new_sr(vuz20, vuz21), new_sr(vuz22, vuz23)), new_sr(vuz23, vuz21)) new_quot39(vuz360, vuz94, vuz101) -> new_quot40(vuz360, vuz94, vuz101) new_quot28(vuz360, Pos(Zero), Integer(Pos(Zero))) -> new_quot24(vuz360) new_absReal12(vuz104, Succ(vuz1050), Succ(vuz1060)) -> new_absReal12(vuz104, vuz1050, vuz1060) new_ps2(Integer(vuz110), Integer(vuz300)) -> Integer(new_primPlusInt(vuz110, vuz300)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primQuotInt1(Pos(vuz3600), Neg(Succ(vuz13600))) -> Neg(new_primDivNatS1(vuz3600, vuz13600)) new_primQuotInt1(Neg(vuz3600), Pos(Succ(vuz13600))) -> Neg(new_primDivNatS1(vuz3600, vuz13600)) new_quot34(vuz182, vuz183, Zero, Succ(vuz1850)) -> new_quot36(vuz182, vuz183) new_quot37(vuz360, Neg(Succ(vuz37000)), Integer(Pos(vuz11000)), vuz94, vuz101, vuz109) -> new_quot32(vuz360, vuz37000, vuz94, vuz101) new_quot51(vuz151, vuz152, Zero, Succ(vuz1540), vuz155, vuz156) -> new_quot50(vuz151, vuz152, vuz155, vuz156) new_absReal110 -> new_absReal15 new_quot50(vuz360, vuz38000, vuz62, vuz370) -> new_quot13(vuz360, new_esEs0(new_primNegInt(vuz38000), vuz62), vuz370, new_primNegInt(vuz38000)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_quot37(vuz360, Pos(Succ(vuz37000)), Integer(Neg(vuz11000)), vuz94, vuz101, vuz109) -> new_quot29(vuz360, vuz37000, vuz94, vuz101) new_primMinusNat0(Succ(vuz1200), Succ(vuz3000)) -> new_primMinusNat0(vuz1200, vuz3000) new_quot55(Neg(vuz290), vuz31, vuz30) -> new_primQuotInt0(vuz290, new_gcd(vuz31, vuz30)) new_ps(vuz7, vuz80, ty_Double) -> new_ps1(vuz7, vuz80) new_quot28(vuz360, Pos(Succ(vuz37000)), Integer(Neg(vuz10200))) -> new_quot16(vuz360, vuz37000) new_esEs0(vuz28, Integer(vuz250)) -> new_primEqInt(vuz28, vuz250) new_quot38(vuz187, vuz188, Succ(vuz1890), Succ(vuz1900), vuz191, vuz192) -> new_quot38(vuz187, vuz188, vuz1890, vuz1900, vuz191, vuz192) new_gcd1(True, vuz31, vuz30) -> new_error new_quot52(vuz194, vuz195, vuz198, vuz199) -> new_quot33(vuz194, Neg(Succ(vuz195)), vuz198, vuz199, Neg(Succ(vuz195))) new_quot55(Pos(vuz290), vuz31, vuz30) -> new_primQuotInt(vuz290, new_gcd(vuz31, vuz30)) new_ps1(Double(vuz100, vuz101), Double(vuz300, vuz301)) -> Double(new_ps3(new_sr(vuz100, vuz301), new_sr(vuz300, vuz101)), new_sr(vuz101, vuz301)) new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primEqInt(Pos(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2600))) -> False new_quot24(vuz360) -> new_quot23(vuz360) new_absReal12(vuz104, Zero, Succ(vuz1060)) -> new_primNegInt0(vuz104) new_quot11(vuz141, vuz142, Zero, Succ(vuz1440), vuz145, vuz146) -> new_quot13(vuz141, new_esEs0(new_primNegInt0(vuz142), vuz145), vuz146, new_primNegInt0(vuz142)) new_gcd0Gcd'10(True, vuz68, vuz69) -> vuz68 new_primPlusNat0(Succ(vuz1200), Succ(vuz3000)) -> Succ(Succ(new_primPlusNat0(vuz1200, vuz3000))) new_ps(vuz7, vuz80, ty_Integer) -> new_ps2(vuz7, vuz80) new_quot44(vuz360, True, vuz94, vuz165) -> new_quot17(vuz360, vuz94) new_quot28(vuz360, Neg(Succ(vuz37000)), Integer(Neg(vuz10200))) -> new_quot34(vuz360, vuz37000, vuz10200, Succ(vuz37000)) new_absReal16(Neg(Zero), Pos(Zero)) -> new_absReal110 new_quot36(vuz360, vuz37000) -> new_quot17(vuz360, new_primNegInt(vuz37000)) new_quot28(vuz360, Neg(Zero), Integer(Pos(Succ(vuz102000)))) -> new_quot17(vuz360, new_primNegInt2) new_quot10(vuz360, vuz62, vuz370) -> new_quot13(vuz360, new_esEs0(Neg(Zero), vuz62), vuz370, Neg(Zero)) new_absReal11(vuz3000) -> new_primNegInt(vuz3000) new_primEqInt(Neg(Succ(vuz2700)), Neg(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_quot40(vuz360, vuz94, vuz101) -> new_quot33(vuz360, Pos(Zero), vuz94, vuz101, Pos(Zero)) new_quot38(vuz187, vuz188, Zero, Zero, vuz191, vuz192) -> new_quot30(vuz187, vuz188, vuz191, vuz192) new_quot31(vuz151, vuz152, vuz155, vuz156) -> new_quot13(vuz151, new_esEs0(Neg(Succ(vuz152)), vuz155), vuz156, Neg(Succ(vuz152))) new_quot11(vuz141, vuz142, Succ(vuz1430), Succ(vuz1440), vuz145, vuz146) -> new_quot11(vuz141, vuz142, vuz1430, vuz1440, vuz145, vuz146) new_primDivNatS02(vuz97, vuz98, Zero, Succ(vuz1000)) -> Zero new_primMulInt(Pos(vuz910), Pos(vuz3010)) -> Pos(new_primMulNat0(vuz910, vuz3010)) new_ps(vuz7, vuz80, ty_Int) -> new_ps3(vuz7, vuz80) new_quot53(vuz20, vuz21, vuz22, vuz23, ty_Integer) -> new_quot25(new_ps2(new_sr0(vuz20, vuz21), new_sr0(vuz22, vuz23)), new_ps2(new_sr0(vuz20, vuz21), new_sr0(vuz22, vuz23)), vuz23, vuz21) new_esEs(vuz27, vuz26) -> new_primEqInt(vuz27, vuz26) new_quot12(vuz360, vuz38000, vuz62, vuz370) -> new_quot14(vuz360, vuz38000, vuz62, vuz370) new_quot20(vuz360, Integer(Pos(Succ(vuz38000))), Integer(Pos(vuz7100)), vuz62, vuz370, vuz70) -> new_quot11(vuz360, vuz38000, Succ(vuz38000), vuz7100, vuz62, vuz370) new_primDivNatS1(Succ(Succ(vuz29000)), Zero) -> Succ(new_primDivNatS1(new_primMinusNatS1(vuz29000), Zero)) new_abs(vuz30) -> new_absReal16(vuz30, new_fromInt) new_primMulNat0(Succ(vuz9100), Zero) -> Zero new_primMulNat0(Zero, Succ(vuz30100)) -> Zero new_reduce2Reduce1(vuz20, vuz21, vuz22, vuz23, False, bc) -> :%(new_quot53(vuz20, vuz21, vuz22, vuz23, bc), new_quot54(vuz23, vuz21, vuz20, vuz22, bc)) new_primNegInt1 -> Neg(Zero) new_quot32(vuz360, vuz37000, vuz94, vuz101) -> new_quot33(vuz360, new_primNegInt(vuz37000), vuz94, vuz101, new_primNegInt(vuz37000)) new_quot51(vuz151, vuz152, Succ(vuz1530), Zero, vuz155, vuz156) -> new_quot31(vuz151, vuz152, vuz155, vuz156) new_ps(vuz7, vuz80, ty_Float) -> new_ps0(vuz7, vuz80) new_quot37(vuz360, Neg(Zero), Integer(Neg(Succ(vuz110000))), vuz94, vuz101, vuz109) -> new_quot43(vuz360, vuz94, vuz101) new_absReal16(Pos(Zero), Pos(Zero)) -> new_absReal17 new_primQuotInt1(Pos(vuz3600), Neg(Zero)) -> new_error new_primQuotInt1(Neg(vuz3600), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_absReal16(Neg(Zero), Neg(Zero)) -> new_absReal110 new_primPlusNat0(Succ(vuz1200), Zero) -> Succ(vuz1200) new_primPlusNat0(Zero, Succ(vuz3000)) -> Succ(vuz3000) new_quot38(vuz187, vuz188, Succ(vuz1890), Zero, vuz191, vuz192) -> new_quot29(vuz187, vuz188, vuz191, vuz192) new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_quot37(vuz360, Pos(Zero), Integer(Pos(Succ(vuz110000))), vuz94, vuz101, vuz109) -> new_quot33(vuz360, new_primNegInt1, vuz94, vuz101, new_primNegInt1) new_quot45(vuz360, False, vuz370, vuz380) -> new_quot46(vuz360, vuz370, Integer(vuz380)) new_quot13(vuz360, False, vuz370, vuz94) -> new_quot27(vuz360, vuz370, vuz94, new_fromInt0) new_quot15(vuz177, vuz178, Zero, Zero) -> new_quot18(vuz177, vuz178) new_quot9(vuz360, vuz62, vuz370) -> new_quot10(vuz360, vuz62, vuz370) new_ps0(Float(vuz90, vuz91), Float(vuz300, vuz301)) -> Float(new_ps3(new_sr(vuz90, vuz301), new_sr(vuz300, vuz91)), new_sr(vuz91, vuz301)) new_ps4(:%(vuz130, vuz131), :%(vuz300, vuz301), bb) -> new_reduce2Reduce1(vuz130, vuz301, vuz300, vuz131, new_esEs1(vuz131, vuz301, bb), bb) new_quot23(vuz360) -> new_quot17(vuz360, Pos(Zero)) new_gcd(vuz31, vuz30) -> new_gcd2(new_esEs(vuz31, new_fromInt), vuz31, vuz30) new_quot49(vuz360, vuz62, vuz370) -> new_quot13(vuz360, new_esEs0(Pos(Zero), vuz62), vuz370, Pos(Zero)) new_quot44(vuz360, False, vuz94, vuz165) -> new_quot33(vuz360, vuz94, vuz165, new_fromInt0, vuz94) new_quot33(vuz360, vuz163, vuz94, vuz101, vuz162) -> new_quot44(vuz360, new_esEs0(new_primRemInt(vuz163, vuz94), vuz101), vuz94, new_primRemInt(vuz163, vuz94)) new_quot46(vuz360, vuz370, vuz38) -> new_quot19(vuz360, vuz38, new_fromInt0, vuz370) new_primMinusNatS1(vuz29000) -> Succ(vuz29000) new_primMinusNat0(Zero, Succ(vuz3000)) -> Neg(Succ(vuz3000)) new_quot20(vuz360, Integer(Neg(Succ(vuz38000))), Integer(Neg(vuz7100)), vuz62, vuz370, vuz70) -> new_quot51(vuz360, vuz38000, vuz7100, Succ(vuz38000), vuz62, vuz370) new_primNegInt2 -> Pos(Zero) new_fromInt0 -> Integer(Pos(Zero)) new_quot20(vuz360, Integer(Neg(Zero)), Integer(Pos(Succ(vuz71000))), vuz62, vuz370, vuz70) -> new_quot13(vuz360, new_esEs0(new_primNegInt2, vuz62), vuz370, new_primNegInt2) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_quot28(vuz360, Pos(Zero), Integer(Neg(Zero))) -> new_quot24(vuz360) new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_quot41(vuz194, vuz195, Zero, Succ(vuz1970), vuz198, vuz199) -> new_quot32(vuz194, vuz195, vuz198, vuz199) new_primDivNatS01(vuz97, vuz98) -> Succ(new_primDivNatS1(new_primMinusNatS0(Succ(vuz97), Succ(vuz98)), Succ(vuz98))) new_quot22(vuz360, True, vuz370, vuz38) -> new_quot47(vuz360, vuz38, new_fromInt0, vuz370) new_primQuotInt1(Neg(vuz3600), Neg(Zero)) -> new_error new_quot20(vuz360, Integer(Pos(Succ(vuz38000))), Integer(Neg(vuz7100)), vuz62, vuz370, vuz70) -> new_quot12(vuz360, vuz38000, vuz62, vuz370) new_reduce2Reduce1(vuz20, vuz21, vuz22, vuz23, True, bc) -> error([]) new_quot54(vuz23, vuz21, vuz20, vuz22, ty_Int) -> new_quot55(new_sr(vuz23, vuz21), new_ps3(new_sr(vuz20, vuz21), new_sr(vuz22, vuz23)), new_sr(vuz23, vuz21)) new_absReal19(vuz130, Zero, Zero) -> new_absReal111(vuz130) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_esEs2(Integer(vuz1310), Integer(vuz3010), vuz25) -> new_esEs0(new_primMulInt(vuz1310, vuz3010), vuz25) new_primDivNatS1(Succ(Succ(vuz29000)), Succ(vuz56000)) -> new_primDivNatS02(vuz29000, vuz56000, vuz29000, vuz56000) new_primEqNat0(Zero, Zero) -> True new_primQuotInt(vuz290, Neg(Succ(vuz5600))) -> Neg(new_primDivNatS1(vuz290, vuz5600)) new_absReal14(vuz3000) -> Pos(Succ(vuz3000)) new_quot37(vuz360, Pos(Zero), Integer(Neg(Succ(vuz110000))), vuz94, vuz101, vuz109) -> new_quot40(vuz360, vuz94, vuz101) new_primMulInt(Neg(vuz910), Neg(vuz3010)) -> Pos(new_primMulNat0(vuz910, vuz3010)) new_primQuotInt0(vuz290, Neg(Succ(vuz5900))) -> Pos(new_primDivNatS1(vuz290, vuz5900)) new_quot26(vuz360, vuz37, vuz38) -> new_quot21(vuz360, vuz37, new_fromInt0, vuz38) new_ps3(vuz12, vuz30) -> new_primPlusInt(vuz12, vuz30) new_fromInt -> Pos(Zero) new_quot20(vuz360, Integer(Pos(Zero)), Integer(Neg(Succ(vuz71000))), vuz62, vuz370, vuz70) -> new_quot49(vuz360, vuz62, vuz370) new_primModNatS1(Zero, vuz6800) -> Zero new_quot20(vuz360, Integer(Pos(Zero)), Integer(Neg(Zero)), vuz62, vuz370, vuz70) -> new_quot48(vuz360, vuz62, vuz370) new_quot17(vuz360, vuz136) -> Integer(new_primQuotInt1(vuz360, vuz136)) new_quot37(vuz360, Neg(Succ(vuz37000)), Integer(Neg(vuz11000)), vuz94, vuz101, vuz109) -> new_quot41(vuz360, vuz37000, vuz11000, Succ(vuz37000), vuz94, vuz101) new_gcd0Gcd'00(vuz69, vuz68) -> new_gcd0Gcd'10(new_esEs(new_rem(vuz69, vuz68), new_fromInt), vuz68, vuz69) new_quot28(vuz360, Neg(Succ(vuz37000)), Integer(Pos(vuz10200))) -> new_quot36(vuz360, vuz37000) new_absReal13(vuz3000) -> new_absReal14(vuz3000) new_error -> error([]) new_gcd2(True, vuz31, vuz30) -> new_gcd1(new_esEs(vuz30, new_fromInt), vuz31, vuz30) new_quot21(vuz360, Integer(vuz370), Integer(vuz430), vuz38) -> new_quot22(vuz360, new_primEqInt(vuz370, vuz430), vuz370, vuz38) new_quot15(vuz177, vuz178, Zero, Succ(vuz1800)) -> new_quot17(vuz177, new_primNegInt0(vuz178)) new_quot28(vuz360, Neg(Zero), Integer(Pos(Zero))) -> new_quot7(vuz360) new_absReal16(Neg(Succ(vuz3000)), Neg(vuz720)) -> new_absReal19(vuz3000, vuz720, Succ(vuz3000)) new_quot25(Integer(vuz360), vuz37, vuz23, vuz21) -> new_quot26(vuz360, vuz37, new_sr0(vuz23, vuz21)) new_absReal19(vuz130, Zero, Succ(vuz1320)) -> new_absReal11(vuz130) new_quot11(vuz141, vuz142, Succ(vuz1430), Zero, vuz145, vuz146) -> new_quot12(vuz141, vuz142, vuz145, vuz146) new_primQuotInt0(vuz290, Pos(Zero)) -> new_error new_absReal16(Neg(Zero), Pos(Succ(vuz7200))) -> new_primNegInt2 new_primNegInt(vuz3000) -> Pos(Succ(vuz3000)) new_quot37(vuz360, Neg(Zero), Integer(Pos(Succ(vuz110000))), vuz94, vuz101, vuz109) -> new_quot33(vuz360, new_primNegInt2, vuz94, vuz101, new_primNegInt2) new_quot22(vuz360, False, vuz370, vuz38) -> new_quot46(vuz360, vuz370, vuz38) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_quot20(vuz360, Integer(Neg(Zero)), Integer(Neg(Succ(vuz71000))), vuz62, vuz370, vuz70) -> new_quot10(vuz360, vuz62, vuz370) The set Q consists of the following terms: new_absReal19(x0, Succ(x1), Zero) new_quot41(x0, x1, Succ(x2), Succ(x3), x4, x5) new_quot51(x0, x1, Zero, Succ(x2), x3, x4) new_quot28(x0, Pos(Succ(x1)), Integer(Neg(x2))) new_absReal16(Pos(Zero), Neg(Succ(x0))) new_absReal16(Neg(Zero), Pos(Succ(x0))) new_primQuotInt1(Pos(x0), Pos(Zero)) new_primMulInt(Neg(x0), Neg(x1)) new_absReal16(Pos(Zero), Pos(Succ(x0))) new_quot28(x0, Pos(Succ(x1)), Integer(Pos(x2))) new_ps0(Float(x0, x1), Float(x2, x3)) new_quot28(x0, Neg(Succ(x1)), Integer(Pos(x2))) new_quot28(x0, Neg(Succ(x1)), Integer(Neg(x2))) new_absReal16(Neg(Zero), Neg(Succ(x0))) new_primMinusNat0(Succ(x0), Zero) new_quot40(x0, x1, x2) new_abs(x0) new_primModNatS1(Zero, x0) new_primPlusInt(Pos(x0), Neg(x1)) new_primPlusInt(Neg(x0), Pos(x1)) new_primMulInt(Pos(x0), Neg(x1)) new_primMulInt(Neg(x0), Pos(x1)) new_primPlusNat0(Succ(x0), Zero) new_quot10(x0, x1, x2) new_ps(x0, x1, ty_Int) new_primQuotInt1(Neg(x0), Neg(Zero)) new_primDivNatS1(Succ(Zero), Zero) new_quot53(x0, x1, x2, x3, ty_Int) new_primMulNat0(Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Zero) new_quot25(Integer(x0), x1, x2, x3) new_fromInt new_primEqNat0(Succ(x0), Zero) new_quot12(x0, x1, x2, x3) new_primQuotInt(x0, Neg(Succ(x1))) new_quot20(x0, Integer(Neg(Zero)), Integer(Neg(Zero)), x1, x2, x3) new_quot30(x0, x1, x2, x3) new_quot43(x0, x1, x2) new_absReal19(x0, Zero, Succ(x1)) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_primPlusInt(Pos(x0), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_primMulInt(Pos(x0), Pos(x1)) new_primMulNat0(Succ(x0), Succ(x1)) new_quot28(x0, Pos(Zero), Integer(Pos(Succ(x1)))) new_primNegInt1 new_quot45(x0, False, x1, x2) new_primEqInt(Pos(Zero), Pos(Zero)) new_absReal14(x0) new_primMinusNat0(Zero, Zero) new_quot14(x0, x1, x2, x3) new_primPlusNat0(Zero, Succ(x0)) new_quot11(x0, x1, Zero, Succ(x2), x3, x4) new_quot11(x0, x1, Zero, Zero, x2, x3) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_esEs2(Integer(x0), Integer(x1), x2) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_quot28(x0, Neg(Zero), Integer(Neg(Succ(x1)))) new_primMinusNat0(Zero, Succ(x0)) new_ps(x0, x1, ty_Float) new_absReal18 new_error new_quot51(x0, x1, Succ(x2), Zero, x3, x4) new_quot41(x0, x1, Succ(x2), Zero, x3, x4) new_primRemInt(Pos(x0), Pos(Zero)) new_absReal11(x0) new_gcd2(False, x0, x1) new_quot20(x0, Integer(Neg(Zero)), Integer(Pos(Zero)), x1, x2, x3) new_quot20(x0, Integer(Pos(Zero)), Integer(Neg(Zero)), x1, x2, x3) new_primDivNatS1(Zero, x0) new_absReal15 new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primPlusNat0(Zero, Zero) new_gcd0(x0, x1) new_quot22(x0, True, x1, x2) new_primPlusNat0(Succ(x0), Succ(x1)) new_absReal12(x0, Succ(x1), Succ(x2)) new_quot23(x0) new_quot51(x0, x1, Succ(x2), Succ(x3), x4, x5) new_quot34(x0, x1, Zero, Succ(x2)) new_gcd0Gcd'10(False, x0, x1) new_quot27(x0, x1, x2, x3) new_quot13(x0, True, x1, x2) new_quot15(x0, x1, Zero, Zero) new_absReal16(Neg(Succ(x0)), Neg(x1)) new_primMulNat0(Succ(x0), Zero) new_absReal16(Pos(Zero), Pos(Zero)) new_quot16(x0, x1) new_quot37(x0, Neg(Succ(x1)), Integer(Pos(x2)), x3, x4, x5) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_quot37(x0, Neg(Zero), Integer(Pos(Succ(x1))), x2, x3, x4) new_quot37(x0, Neg(Zero), Integer(Neg(Succ(x1))), x2, x3, x4) new_primMinusNatS1(x0) new_quot24(x0) new_primMinusNatS2 new_quot28(x0, Pos(Zero), Integer(Neg(Succ(x1)))) new_rem(x0, x1) new_quot21(x0, Integer(x1), Integer(x2), x3) new_ps4(:%(x0, x1), :%(x2, x3), x4) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_ps(x0, x1, ty_Double) new_absReal17 new_primDivNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Neg(x0), Neg(Zero)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primDivNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_quot46(x0, x1, x2) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_gcd0Gcd'11(False, x0, x1) new_quot34(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Zero, Succ(x0)) new_quot22(x0, False, x1, x2) new_quot20(x0, Integer(Pos(Zero)), Integer(Pos(Zero)), x1, x2, x3) new_esEs1(x0, x1, ty_Integer) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_quot15(x0, x1, Zero, Succ(x2)) new_quot38(x0, x1, Succ(x2), Zero, x3, x4) new_quot17(x0, x1) new_quot48(x0, x1, x2) new_primQuotInt0(x0, Neg(Zero)) new_quot44(x0, True, x1, x2) new_quot37(x0, Neg(Succ(x1)), Integer(Neg(x2)), x3, x4, x5) new_quot38(x0, x1, Succ(x2), Succ(x3), x4, x5) new_quot28(x0, Neg(Zero), Integer(Pos(Succ(x1)))) new_quot37(x0, Pos(Zero), Integer(Pos(Zero)), x1, x2, x3) new_quot20(x0, Integer(Pos(Zero)), Integer(Pos(Succ(x1))), x2, x3, x4) new_quot55(Pos(x0), x1, x2) new_quot54(x0, x1, x2, x3, ty_Int) new_primMinusNat0(Succ(x0), Succ(x1)) new_quot28(x0, Neg(Zero), Integer(Neg(Zero))) new_quot54(x0, x1, x2, x3, ty_Integer) new_absReal12(x0, Zero, Succ(x1)) new_primQuotInt0(x0, Pos(Succ(x1))) new_quot38(x0, x1, Zero, Zero, x2, x3) new_quot29(x0, x1, x2, x3) new_quot28(x0, Pos(Zero), Integer(Neg(Zero))) new_gcd2(True, x0, x1) new_quot39(x0, x1, x2) new_quot28(x0, Neg(Zero), Integer(Pos(Zero))) new_quot8(x0) new_quot49(x0, x1, x2) new_quot20(x0, Integer(Neg(Zero)), Integer(Neg(Succ(x1))), x2, x3, x4) new_fromInt0 new_absReal19(x0, Succ(x1), Succ(x2)) new_primQuotInt0(x0, Neg(Succ(x1))) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_gcd0Gcd'11(True, x0, x1) new_quot52(x0, x1, x2, x3) new_quot28(x0, Pos(Zero), Integer(Pos(Zero))) new_primNegInt(x0) new_quot35(x0, x1) new_quot26(x0, x1, x2) new_primDivNatS1(Succ(Zero), Succ(x0)) new_primQuotInt0(x0, Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_absReal16(Neg(Zero), Neg(Zero)) new_primQuotInt(x0, Neg(Zero)) new_absReal110 new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_absReal16(Neg(Succ(x0)), Pos(x1)) new_absReal16(Pos(Succ(x0)), Neg(x1)) new_quot9(x0, x1, x2) new_primNegInt0(x0) new_primModNatS1(Succ(Zero), Zero) new_quot37(x0, Neg(Zero), Integer(Pos(Zero)), x1, x2, x3) new_quot44(x0, False, x1, x2) new_quot37(x0, Pos(Zero), Integer(Neg(Zero)), x1, x2, x3) new_gcd1(True, x0, x1) new_quot37(x0, Pos(Succ(x1)), Integer(Neg(x2)), x3, x4, x5) new_ps(x0, x1, ty_Integer) new_quot20(x0, Integer(Neg(Zero)), Integer(Pos(Succ(x1))), x2, x3, x4) new_quot37(x0, Pos(Zero), Integer(Neg(Succ(x1))), x2, x3, x4) new_quot20(x0, Integer(Pos(Zero)), Integer(Neg(Succ(x1))), x2, x3, x4) new_primDivNatS01(x0, x1) new_quot33(x0, x1, x2, x3, x4) new_ps3(x0, x1) new_quot53(x0, x1, x2, x3, ty_Integer) new_esEs0(x0, Integer(x1)) new_absReal111(x0) new_sr0(Integer(x0), Integer(x1)) new_quot20(x0, Integer(Pos(Succ(x1))), Integer(Pos(x2)), x3, x4, x5) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_ps2(Integer(x0), Integer(x1)) new_esEs(x0, x1) new_primModNatS1(Succ(Zero), Succ(x0)) new_quot13(x0, False, x1, x2) new_primEqNat0(Zero, Zero) new_quot34(x0, x1, Zero, Zero) new_gcd0Gcd'10(True, x0, x1) new_quot36(x0, x1) new_quot20(x0, Integer(Neg(Succ(x1))), Integer(Pos(x2)), x3, x4, x5) new_quot20(x0, Integer(Pos(Succ(x1))), Integer(Neg(x2)), x3, x4, x5) new_quot15(x0, x1, Succ(x2), Succ(x3)) new_quot55(Neg(x0), x1, x2) new_primDivNatS1(Succ(Succ(x0)), Succ(x1)) new_gcd0Gcd'00(x0, x1) new_primDivNatS02(x0, x1, Succ(x2), Succ(x3)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1) new_quot11(x0, x1, Succ(x2), Succ(x3), x4, x5) new_quot37(x0, Pos(Zero), Integer(Pos(Succ(x1))), x2, x3, x4) new_primMinusNatS0(Succ(x0), Zero) new_primDivNatS02(x0, x1, Zero, Zero) new_absReal16(Pos(Zero), Neg(Zero)) new_absReal16(Neg(Zero), Pos(Zero)) new_primMinusNatS0(Succ(x0), Succ(x1)) new_quot47(x0, Integer(x1), Integer(x2), x3) new_esEs1(x0, x1, ty_Int) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_quot15(x0, x1, Succ(x2), Zero) new_quot20(x0, Integer(Neg(Succ(x1))), Integer(Neg(x2)), x3, x4, x5) new_quot19(x0, x1, x2, x3) new_ps(x0, x1, app(ty_Ratio, x2)) new_primQuotInt(x0, Pos(Zero)) new_primMulNat0(Zero, Succ(x0)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_sr(x0, x1) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_quot45(x0, True, x1, x2) new_quot50(x0, x1, x2, x3) new_absReal19(x0, Zero, Zero) new_absReal12(x0, Zero, Zero) new_quot34(x0, x1, Succ(x2), Zero) new_primNegInt2 new_quot18(x0, x1) new_quot32(x0, x1, x2, x3) new_gcd1(False, x0, x1) new_quot38(x0, x1, Zero, Succ(x2), x3, x4) new_quot31(x0, x1, x2, x3) new_absReal13(x0) new_quot42(x0, x1, x2) new_primQuotInt(x0, Pos(Succ(x1))) new_ps1(Double(x0, x1), Double(x2, x3)) new_primModNatS02(x0, x1, Zero, Zero) new_primDivNatS1(Succ(Succ(x0)), Zero) new_quot37(x0, Pos(Succ(x1)), Integer(Pos(x2)), x3, x4, x5) new_quot7(x0) new_quot41(x0, x1, Zero, Zero, x2, x3) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_quot41(x0, x1, Zero, Succ(x2), x3, x4) new_gcd(x0, x1) new_primPlusInt(Neg(x0), Neg(x1)) new_quot11(x0, x1, Succ(x2), Zero, x3, x4) new_absReal16(Pos(Succ(x0)), Pos(x1)) new_quot51(x0, x1, Zero, Zero, x2, x3) new_quot37(x0, Neg(Zero), Integer(Neg(Zero)), x1, x2, x3) new_absReal12(x0, Succ(x1), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (627) 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_enforceWHNF(vuz7, :(vuz80, vuz81), h) -> new_enforceWHNF(new_ps(vuz7, vuz80, h), vuz81, h) The graph contains the following edges 2 > 2, 3 >= 3 ---------------------------------------- (628) YES ---------------------------------------- (629) Obligation: Q DP problem: The TRS P consists of the following rules: new_primMinusNat(Succ(vuz1200), Succ(vuz3000)) -> new_primMinusNat(vuz1200, vuz3000) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (630) 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(Succ(vuz1200), Succ(vuz3000)) -> new_primMinusNat(vuz1200, vuz3000) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (631) YES ---------------------------------------- (632) Obligation: Q DP problem: The TRS P consists of the following rules: new_primPlusNat(Succ(vuz1200), Succ(vuz3000)) -> new_primPlusNat(vuz1200, vuz3000) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (633) 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(Succ(vuz1200), Succ(vuz3000)) -> new_primPlusNat(vuz1200, vuz3000) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (634) YES ---------------------------------------- (635) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot0(vuz177, vuz178, Succ(vuz1790), Succ(vuz1800)) -> new_quot0(vuz177, vuz178, vuz1790, vuz1800) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (636) 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_quot0(vuz177, vuz178, Succ(vuz1790), Succ(vuz1800)) -> new_quot0(vuz177, vuz178, vuz1790, vuz1800) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 ---------------------------------------- (637) YES ---------------------------------------- (638) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(vuz69, vuz68) -> new_gcd0Gcd'1(new_esEs(new_rem(vuz69, vuz68), new_fromInt), vuz68, vuz69) new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_rem(vuz69, vuz68)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primEqNat0(Zero, Zero) -> True new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primEqInt(Neg(Succ(vuz2700)), Neg(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primEqInt(Neg(Succ(vuz2700)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2600))) -> False new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_fromInt -> Pos(Zero) new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2600))) -> False new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primModNatS1(Zero, vuz6800) -> Zero new_primEqInt(Pos(Succ(vuz2700)), Pos(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_esEs(vuz27, vuz26) -> new_primEqInt(vuz27, vuz26) new_error -> error([]) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqNat0(Succ(vuz27000), Zero) -> False new_primEqNat0(Zero, Succ(vuz26000)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqNat0(Succ(vuz27000), Succ(vuz26000)) -> new_primEqNat0(vuz27000, vuz26000) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primEqInt(Pos(Succ(vuz2700)), Neg(vuz260)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primEqInt(Pos(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2600))) -> False new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_rem(vuz69, vuz68) -> new_primRemInt(vuz69, vuz68) new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_rem(x0, x1) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_fromInt new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_esEs(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (639) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(vuz69, vuz68) -> new_gcd0Gcd'1(new_esEs(new_rem(vuz69, vuz68), new_fromInt), vuz68, vuz69) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(vuz69, vuz68) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz69, vuz68), new_fromInt), vuz68, vuz69),new_gcd0Gcd'0(vuz69, vuz68) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz69, vuz68), new_fromInt), vuz68, vuz69)) ---------------------------------------- (640) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_rem(vuz69, vuz68)) new_gcd0Gcd'0(vuz69, vuz68) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz69, vuz68), new_fromInt), vuz68, vuz69) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primEqNat0(Zero, Zero) -> True new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primEqInt(Neg(Succ(vuz2700)), Neg(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primEqInt(Neg(Succ(vuz2700)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2600))) -> False new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_fromInt -> Pos(Zero) new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2600))) -> False new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primModNatS1(Zero, vuz6800) -> Zero new_primEqInt(Pos(Succ(vuz2700)), Pos(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_esEs(vuz27, vuz26) -> new_primEqInt(vuz27, vuz26) new_error -> error([]) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqNat0(Succ(vuz27000), Zero) -> False new_primEqNat0(Zero, Succ(vuz26000)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqNat0(Succ(vuz27000), Succ(vuz26000)) -> new_primEqNat0(vuz27000, vuz26000) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primEqInt(Pos(Succ(vuz2700)), Neg(vuz260)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primEqInt(Pos(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2600))) -> False new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_rem(vuz69, vuz68) -> new_primRemInt(vuz69, vuz68) new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_rem(x0, x1) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_fromInt new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_esEs(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (641) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (642) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_rem(vuz69, vuz68)) new_gcd0Gcd'0(vuz69, vuz68) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz69, vuz68), new_fromInt), vuz68, vuz69) The TRS R consists of the following rules: new_rem(vuz69, vuz68) -> new_primRemInt(vuz69, vuz68) new_fromInt -> Pos(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz2700)), Neg(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primEqInt(Neg(Succ(vuz2700)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2600))) -> False new_primEqInt(Pos(Succ(vuz2700)), Pos(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primEqInt(Pos(Succ(vuz2700)), Neg(vuz260)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2600))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz27000), Zero) -> False new_primEqNat0(Zero, Succ(vuz26000)) -> False new_primEqNat0(Succ(vuz27000), Succ(vuz26000)) -> new_primEqNat0(vuz27000, vuz26000) new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_rem(x0, x1) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_fromInt new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) new_esEs(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (643) 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_esEs(x0, x1) ---------------------------------------- (644) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_rem(vuz69, vuz68)) new_gcd0Gcd'0(vuz69, vuz68) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz69, vuz68), new_fromInt), vuz68, vuz69) The TRS R consists of the following rules: new_rem(vuz69, vuz68) -> new_primRemInt(vuz69, vuz68) new_fromInt -> Pos(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz2700)), Neg(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primEqInt(Neg(Succ(vuz2700)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2600))) -> False new_primEqInt(Pos(Succ(vuz2700)), Pos(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primEqInt(Pos(Succ(vuz2700)), Neg(vuz260)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2600))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz27000), Zero) -> False new_primEqNat0(Zero, Succ(vuz26000)) -> False new_primEqNat0(Succ(vuz27000), Succ(vuz26000)) -> new_primEqNat0(vuz27000, vuz26000) new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_rem(x0, x1) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_fromInt new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (645) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_rem(vuz69, vuz68)) at position [1] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_primRemInt(vuz69, vuz68)),new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_primRemInt(vuz69, vuz68))) ---------------------------------------- (646) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(vuz69, vuz68) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz69, vuz68), new_fromInt), vuz68, vuz69) new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_primRemInt(vuz69, vuz68)) The TRS R consists of the following rules: new_rem(vuz69, vuz68) -> new_primRemInt(vuz69, vuz68) new_fromInt -> Pos(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz2700)), Neg(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primEqInt(Neg(Succ(vuz2700)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2600))) -> False new_primEqInt(Pos(Succ(vuz2700)), Pos(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primEqInt(Pos(Succ(vuz2700)), Neg(vuz260)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2600))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz27000), Zero) -> False new_primEqNat0(Zero, Succ(vuz26000)) -> False new_primEqNat0(Succ(vuz27000), Succ(vuz26000)) -> new_primEqNat0(vuz27000, vuz26000) new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_rem(x0, x1) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_fromInt new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (647) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(vuz69, vuz68) -> new_gcd0Gcd'1(new_primEqInt(new_rem(vuz69, vuz68), new_fromInt), vuz68, vuz69) at position [0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(vuz69, vuz68) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz69, vuz68), new_fromInt), vuz68, vuz69),new_gcd0Gcd'0(vuz69, vuz68) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz69, vuz68), new_fromInt), vuz68, vuz69)) ---------------------------------------- (648) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_primRemInt(vuz69, vuz68)) new_gcd0Gcd'0(vuz69, vuz68) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz69, vuz68), new_fromInt), vuz68, vuz69) The TRS R consists of the following rules: new_rem(vuz69, vuz68) -> new_primRemInt(vuz69, vuz68) new_fromInt -> Pos(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz2700)), Neg(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primEqInt(Neg(Succ(vuz2700)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2600))) -> False new_primEqInt(Pos(Succ(vuz2700)), Pos(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primEqInt(Pos(Succ(vuz2700)), Neg(vuz260)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2600))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz27000), Zero) -> False new_primEqNat0(Zero, Succ(vuz26000)) -> False new_primEqNat0(Succ(vuz27000), Succ(vuz26000)) -> new_primEqNat0(vuz27000, vuz26000) new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_rem(x0, x1) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_fromInt new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (649) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (650) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_primRemInt(vuz69, vuz68)) new_gcd0Gcd'0(vuz69, vuz68) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz69, vuz68), new_fromInt), vuz68, vuz69) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_fromInt -> Pos(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz2700)), Neg(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primEqInt(Neg(Succ(vuz2700)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2600))) -> False new_primEqInt(Pos(Succ(vuz2700)), Pos(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primEqInt(Pos(Succ(vuz2700)), Neg(vuz260)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2600))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz27000), Zero) -> False new_primEqNat0(Zero, Succ(vuz26000)) -> False new_primEqNat0(Succ(vuz27000), Succ(vuz26000)) -> new_primEqNat0(vuz27000, vuz26000) new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_rem(x0, x1) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_fromInt new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (651) 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_rem(x0, x1) ---------------------------------------- (652) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_primRemInt(vuz69, vuz68)) new_gcd0Gcd'0(vuz69, vuz68) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz69, vuz68), new_fromInt), vuz68, vuz69) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_fromInt -> Pos(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz2700)), Neg(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primEqInt(Neg(Succ(vuz2700)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2600))) -> False new_primEqInt(Pos(Succ(vuz2700)), Pos(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primEqInt(Pos(Succ(vuz2700)), Neg(vuz260)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2600))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz27000), Zero) -> False new_primEqNat0(Zero, Succ(vuz26000)) -> False new_primEqNat0(Succ(vuz27000), Succ(vuz26000)) -> new_primEqNat0(vuz27000, vuz26000) new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_fromInt new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (653) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(vuz69, vuz68) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz69, vuz68), new_fromInt), vuz68, vuz69) at position [0,1] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(vuz69, vuz68) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz69, vuz68), Pos(Zero)), vuz68, vuz69),new_gcd0Gcd'0(vuz69, vuz68) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz69, vuz68), Pos(Zero)), vuz68, vuz69)) ---------------------------------------- (654) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_primRemInt(vuz69, vuz68)) new_gcd0Gcd'0(vuz69, vuz68) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz69, vuz68), Pos(Zero)), vuz68, vuz69) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_fromInt -> Pos(Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Neg(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz2700)), Neg(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primEqInt(Neg(Succ(vuz2700)), Neg(Zero)) -> False new_primEqInt(Neg(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Pos(Zero), Pos(Succ(vuz2600))) -> False new_primEqInt(Pos(Succ(vuz2700)), Pos(Succ(vuz2600))) -> new_primEqNat0(vuz2700, vuz2600) new_primEqInt(Pos(Succ(vuz2700)), Neg(vuz260)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Pos(Zero), Neg(Succ(vuz2600))) -> False new_primEqInt(Neg(Zero), Pos(Succ(vuz2600))) -> False new_primEqInt(Pos(Zero), Neg(Zero)) -> True new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primEqNat0(Zero, Zero) -> True new_primEqNat0(Succ(vuz27000), Zero) -> False new_primEqNat0(Zero, Succ(vuz26000)) -> False new_primEqNat0(Succ(vuz27000), Succ(vuz26000)) -> new_primEqNat0(vuz27000, vuz26000) new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_fromInt new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(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_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_primRemInt(vuz69, vuz68)) new_gcd0Gcd'0(vuz69, vuz68) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz69, vuz68), Pos(Zero)), vuz68, vuz69) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primEqNat0(Zero, Zero) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primEqNat0(Succ(x0), Succ(x1)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primEqNat0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_fromInt new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqNat0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (657) 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_primEqNat0(Zero, Zero) new_primEqNat0(Succ(x0), Succ(x1)) new_primEqNat0(Zero, Succ(x0)) new_fromInt new_primEqNat0(Succ(x0), Zero) ---------------------------------------- (658) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_primRemInt(vuz69, vuz68)) new_gcd0Gcd'0(vuz69, vuz68) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz69, vuz68), Pos(Zero)), vuz68, vuz69) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (659) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_primRemInt(vuz69, vuz68)) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, x2, x3) -> new_gcd0Gcd'0(x2, new_primRemInt(x3, x2)), new_gcd0Gcd'0(x4, x5) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x4, x5), Pos(Zero)), x5, x4) which results in the following constraint: (1) (new_gcd0Gcd'0(x2, new_primRemInt(x3, x2))=new_gcd0Gcd'0(x4, x5) ==> new_gcd0Gcd'1(False, x2, x3)_>=_new_gcd0Gcd'0(x2, new_primRemInt(x3, x2))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, x2, x3)_>=_new_gcd0Gcd'0(x2, new_primRemInt(x3, x2))) For Pair new_gcd0Gcd'0(vuz69, vuz68) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz69, vuz68), Pos(Zero)), vuz68, vuz69) the following chains were created: *We consider the chain new_gcd0Gcd'0(x6, x7) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x6, x7), Pos(Zero)), x7, x6), new_gcd0Gcd'1(False, x8, x9) -> new_gcd0Gcd'0(x8, new_primRemInt(x9, x8)) which results in the following constraint: (1) (new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x6, x7), Pos(Zero)), x7, x6)=new_gcd0Gcd'1(False, x8, x9) ==> new_gcd0Gcd'0(x6, x7)_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x6, x7), Pos(Zero)), x7, x6)) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (new_primRemInt(x6, x7)=x12 & Pos(Zero)=x13 & new_primEqInt(x12, x13)=False ==> new_gcd0Gcd'0(x6, x7)_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x6, x7), Pos(Zero)), x7, x6)) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x12, x13)=False which results in the following new constraints: (3) (False=False & new_primRemInt(x6, x7)=Pos(Succ(x14)) & Pos(Zero)=Pos(Zero) ==> new_gcd0Gcd'0(x6, x7)_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x6, x7), Pos(Zero)), x7, x6)) (4) (False=False & new_primRemInt(x6, x7)=Neg(Succ(x16)) & Pos(Zero)=Pos(x15) ==> new_gcd0Gcd'0(x6, x7)_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x6, x7), Pos(Zero)), x7, x6)) We simplified constraint (3) using rules (I), (II) which results in the following new constraint: (5) (new_primRemInt(x6, x7)=Pos(Succ(x14)) ==> new_gcd0Gcd'0(x6, x7)_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x6, x7), Pos(Zero)), x7, x6)) We simplified constraint (4) using rules (I), (II), (IV) which results in the following new constraint: (6) (new_primRemInt(x6, x7)=Neg(Succ(x16)) ==> new_gcd0Gcd'0(x6, x7)_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(x6, x7), Pos(Zero)), x7, x6)) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primRemInt(x6, x7)=Pos(Succ(x14)) which results in the following new constraints: (7) (Pos(new_primModNatS1(x18, x17))=Pos(Succ(x14)) ==> new_gcd0Gcd'0(Pos(x18), Neg(Succ(x17)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x18), Neg(Succ(x17))), Pos(Zero)), Neg(Succ(x17)), Pos(x18))) (8) (Pos(new_primModNatS1(x20, x19))=Pos(Succ(x14)) ==> new_gcd0Gcd'0(Pos(x20), Pos(Succ(x19)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x20), Pos(Succ(x19))), Pos(Zero)), Pos(Succ(x19)), Pos(x20))) (9) (new_error=Pos(Succ(x14)) ==> new_gcd0Gcd'0(Neg(x21), Neg(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x21), Neg(Zero)), Pos(Zero)), Neg(Zero), Neg(x21))) (10) (new_error=Pos(Succ(x14)) ==> new_gcd0Gcd'0(Pos(x24), Pos(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x24), Pos(Zero)), Pos(Zero)), Pos(Zero), Pos(x24))) (11) (new_error=Pos(Succ(x14)) ==> new_gcd0Gcd'0(Pos(x27), Neg(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x27), Neg(Zero)), Pos(Zero)), Neg(Zero), Pos(x27))) (12) (new_error=Pos(Succ(x14)) ==> new_gcd0Gcd'0(Neg(x28), Pos(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x28), Pos(Zero)), Pos(Zero)), Pos(Zero), Neg(x28))) We simplified constraint (7) using rules (I), (II) which results in the following new constraint: (13) (new_primModNatS1(x18, x17)=Succ(x14) ==> new_gcd0Gcd'0(Pos(x18), Neg(Succ(x17)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x18), Neg(Succ(x17))), Pos(Zero)), Neg(Succ(x17)), Pos(x18))) We simplified constraint (8) using rules (I), (II) which results in the following new constraint: (14) (new_primModNatS1(x20, x19)=Succ(x14) ==> new_gcd0Gcd'0(Pos(x20), Pos(Succ(x19)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x20), Pos(Succ(x19))), Pos(Zero)), Pos(Succ(x19)), Pos(x20))) We solved constraint (9) using rule (V) (with possible (I) afterwards).We solved constraint (10) using rule (V) (with possible (I) afterwards).We solved constraint (11) using rule (V) (with possible (I) afterwards).We solved constraint (12) using rule (V) (with possible (I) afterwards).We simplified constraint (13) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x18, x17)=Succ(x14) which results in the following new constraints: (15) (Succ(Zero)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x29))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x29)))), Pos(Zero)), Neg(Succ(Succ(x29))), Pos(Succ(Zero)))) (16) (new_primModNatS1(new_primMinusNatS0(Succ(x31), Zero), Zero)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Succ(x31))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x31))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x31))))) (17) (new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Zero)))) (18) (new_primModNatS02(x33, x32, x33, x32)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Succ(x33))), Neg(Succ(Succ(x32))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x33))), Neg(Succ(Succ(x32)))), Pos(Zero)), Neg(Succ(Succ(x32))), Pos(Succ(Succ(x33))))) We simplified constraint (15) using rules (I), (II), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x29))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x29)))), Pos(Zero)), Neg(Succ(Succ(x29))), Pos(Succ(Zero)))) We simplified constraint (16) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'0(Pos(Succ(Succ(x31))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x31))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x31))))) We simplified constraint (17) using rules (III), (IV), (VII) which results in the following new constraint: (21) (new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Zero)))) We simplified constraint (18) using rules (III), (IV), (VII) which results in the following new constraint: (22) (new_gcd0Gcd'0(Pos(Succ(Succ(x42))), Neg(Succ(Succ(x43))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x42))), Neg(Succ(Succ(x43)))), Pos(Zero)), Neg(Succ(Succ(x43))), Pos(Succ(Succ(x42))))) We simplified constraint (14) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x20, x19)=Succ(x14) which results in the following new constraints: (23) (Succ(Zero)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x44))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x44)))), Pos(Zero)), Pos(Succ(Succ(x44))), Pos(Succ(Zero)))) (24) (new_primModNatS1(new_primMinusNatS0(Succ(x46), Zero), Zero)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Succ(x46))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x46))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x46))))) (25) (new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Zero)))) (26) (new_primModNatS02(x48, x47, x48, x47)=Succ(x14) ==> new_gcd0Gcd'0(Pos(Succ(Succ(x48))), Pos(Succ(Succ(x47))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x48))), Pos(Succ(Succ(x47)))), Pos(Zero)), Pos(Succ(Succ(x47))), Pos(Succ(Succ(x48))))) We simplified constraint (23) using rules (I), (II), (IV) which results in the following new constraint: (27) (new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x44))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x44)))), Pos(Zero)), Pos(Succ(Succ(x44))), Pos(Succ(Zero)))) We simplified constraint (24) using rules (III), (IV), (VII) which results in the following new constraint: (28) (new_gcd0Gcd'0(Pos(Succ(Succ(x46))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x46))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x46))))) We simplified constraint (25) using rules (III), (IV), (VII) which results in the following new constraint: (29) (new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Zero)))) We simplified constraint (26) using rules (III), (IV), (VII) which results in the following new constraint: (30) (new_gcd0Gcd'0(Pos(Succ(Succ(x57))), Pos(Succ(Succ(x58))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x57))), Pos(Succ(Succ(x58)))), Pos(Zero)), Pos(Succ(Succ(x58))), Pos(Succ(Succ(x57))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primRemInt(x6, x7)=Neg(Succ(x16)) which results in the following new constraints: (31) (new_error=Neg(Succ(x16)) ==> new_gcd0Gcd'0(Neg(x63), Neg(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x63), Neg(Zero)), Pos(Zero)), Neg(Zero), Neg(x63))) (32) (Neg(new_primModNatS1(x65, x64))=Neg(Succ(x16)) ==> new_gcd0Gcd'0(Neg(x65), Pos(Succ(x64)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x65), Pos(Succ(x64))), Pos(Zero)), Pos(Succ(x64)), Neg(x65))) (33) (new_error=Neg(Succ(x16)) ==> new_gcd0Gcd'0(Pos(x66), Pos(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x66), Pos(Zero)), Pos(Zero)), Pos(Zero), Pos(x66))) (34) (Neg(new_primModNatS1(x68, x67))=Neg(Succ(x16)) ==> new_gcd0Gcd'0(Neg(x68), Neg(Succ(x67)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x68), Neg(Succ(x67))), Pos(Zero)), Neg(Succ(x67)), Neg(x68))) (35) (new_error=Neg(Succ(x16)) ==> new_gcd0Gcd'0(Pos(x69), Neg(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(x69), Neg(Zero)), Pos(Zero)), Neg(Zero), Pos(x69))) (36) (new_error=Neg(Succ(x16)) ==> new_gcd0Gcd'0(Neg(x70), Pos(Zero))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x70), Pos(Zero)), Pos(Zero)), Pos(Zero), Neg(x70))) We solved constraint (31) using rule (V) (with possible (I) afterwards).We simplified constraint (32) using rules (I), (II) which results in the following new constraint: (37) (new_primModNatS1(x65, x64)=Succ(x16) ==> new_gcd0Gcd'0(Neg(x65), Pos(Succ(x64)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x65), Pos(Succ(x64))), Pos(Zero)), Pos(Succ(x64)), Neg(x65))) We solved constraint (33) using rule (V) (with possible (I) afterwards).We simplified constraint (34) using rules (I), (II) which results in the following new constraint: (38) (new_primModNatS1(x68, x67)=Succ(x16) ==> new_gcd0Gcd'0(Neg(x68), Neg(Succ(x67)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(x68), Neg(Succ(x67))), Pos(Zero)), Neg(Succ(x67)), Neg(x68))) We solved constraint (35) using rule (V) (with possible (I) afterwards).We solved constraint (36) using rule (V) (with possible (I) afterwards).We simplified constraint (37) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x65, x64)=Succ(x16) which results in the following new constraints: (39) (Succ(Zero)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x71))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x71)))), Pos(Zero)), Pos(Succ(Succ(x71))), Neg(Succ(Zero)))) (40) (new_primModNatS1(new_primMinusNatS0(Succ(x73), Zero), Zero)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Succ(x73))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x73))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x73))))) (41) (new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero)))) (42) (new_primModNatS02(x75, x74, x75, x74)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Succ(x75))), Pos(Succ(Succ(x74))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x75))), Pos(Succ(Succ(x74)))), Pos(Zero)), Pos(Succ(Succ(x74))), Neg(Succ(Succ(x75))))) We simplified constraint (39) using rules (I), (II), (IV) which results in the following new constraint: (43) (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x71))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x71)))), Pos(Zero)), Pos(Succ(Succ(x71))), Neg(Succ(Zero)))) We simplified constraint (40) using rules (III), (IV), (VII) which results in the following new constraint: (44) (new_gcd0Gcd'0(Neg(Succ(Succ(x73))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x73))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x73))))) We simplified constraint (41) using rules (III), (IV), (VII) which results in the following new constraint: (45) (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero)))) We simplified constraint (42) using rules (III), (IV), (VII) which results in the following new constraint: (46) (new_gcd0Gcd'0(Neg(Succ(Succ(x84))), Pos(Succ(Succ(x85))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x84))), Pos(Succ(Succ(x85)))), Pos(Zero)), Pos(Succ(Succ(x85))), Neg(Succ(Succ(x84))))) We simplified constraint (38) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x68, x67)=Succ(x16) which results in the following new constraints: (47) (Succ(Zero)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x86))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x86)))), Pos(Zero)), Neg(Succ(Succ(x86))), Neg(Succ(Zero)))) (48) (new_primModNatS1(new_primMinusNatS0(Succ(x88), Zero), Zero)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Succ(x88))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x88))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x88))))) (49) (new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Zero)))) (50) (new_primModNatS02(x90, x89, x90, x89)=Succ(x16) ==> new_gcd0Gcd'0(Neg(Succ(Succ(x90))), Neg(Succ(Succ(x89))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x90))), Neg(Succ(Succ(x89)))), Pos(Zero)), Neg(Succ(Succ(x89))), Neg(Succ(Succ(x90))))) We simplified constraint (47) using rules (I), (II), (IV) which results in the following new constraint: (51) (new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x86))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x86)))), Pos(Zero)), Neg(Succ(Succ(x86))), Neg(Succ(Zero)))) We simplified constraint (48) using rules (III), (IV), (VII) which results in the following new constraint: (52) (new_gcd0Gcd'0(Neg(Succ(Succ(x88))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x88))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x88))))) We simplified constraint (49) using rules (III), (IV), (VII) which results in the following new constraint: (53) (new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Zero)))) We simplified constraint (50) using rules (III), (IV), (VII) which results in the following new constraint: (54) (new_gcd0Gcd'0(Neg(Succ(Succ(x99))), Neg(Succ(Succ(x100))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x99))), Neg(Succ(Succ(x100)))), Pos(Zero)), Neg(Succ(Succ(x100))), Neg(Succ(Succ(x99))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_primRemInt(vuz69, vuz68)) *(new_gcd0Gcd'1(False, x2, x3)_>=_new_gcd0Gcd'0(x2, new_primRemInt(x3, x2))) *new_gcd0Gcd'0(vuz69, vuz68) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz69, vuz68), Pos(Zero)), vuz68, vuz69) *(new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x29))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x29)))), Pos(Zero)), Neg(Succ(Succ(x29))), Pos(Succ(Zero)))) *(new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x44))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x44)))), Pos(Zero)), Pos(Succ(Succ(x44))), Pos(Succ(Zero)))) *(new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x71))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x71)))), Pos(Zero)), Pos(Succ(Succ(x71))), Neg(Succ(Zero)))) *(new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x86))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x86)))), Pos(Zero)), Neg(Succ(Succ(x86))), Neg(Succ(Zero)))) *(new_gcd0Gcd'0(Pos(Succ(Succ(x31))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x31))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x31))))) *(new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Zero)))) *(new_gcd0Gcd'0(Pos(Succ(Succ(x42))), Neg(Succ(Succ(x43))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x42))), Neg(Succ(Succ(x43)))), Pos(Zero)), Neg(Succ(Succ(x43))), Pos(Succ(Succ(x42))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(x46))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x46))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x46))))) *(new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Zero)))) *(new_gcd0Gcd'0(Pos(Succ(Succ(x57))), Pos(Succ(Succ(x58))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Pos(Succ(Succ(x57))), Pos(Succ(Succ(x58)))), Pos(Zero)), Pos(Succ(Succ(x58))), Pos(Succ(Succ(x57))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(x73))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x73))), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x73))))) *(new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero)))) *(new_gcd0Gcd'0(Neg(Succ(Succ(x84))), Pos(Succ(Succ(x85))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x84))), Pos(Succ(Succ(x85)))), Pos(Zero)), Pos(Succ(Succ(x85))), Neg(Succ(Succ(x84))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(x88))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x88))), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x88))))) *(new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Zero)))) *(new_gcd0Gcd'0(Neg(Succ(Succ(x99))), Neg(Succ(Succ(x100))))_>=_new_gcd0Gcd'1(new_primEqInt(new_primRemInt(Neg(Succ(Succ(x99))), Neg(Succ(Succ(x100)))), Pos(Zero)), Neg(Succ(Succ(x100))), Neg(Succ(Succ(x99))))) 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. ---------------------------------------- (660) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_primRemInt(vuz69, vuz68)) new_gcd0Gcd'0(vuz69, vuz68) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz69, vuz68), Pos(Zero)), vuz68, vuz69) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (661) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(vuz69, vuz68) -> new_gcd0Gcd'1(new_primEqInt(new_primRemInt(vuz69, vuz68), Pos(Zero)), vuz68, vuz69) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)),new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0))) (new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)),new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0))) (new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Neg(x0)),new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Neg(x0))) (new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)),new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0))) (new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Pos(x0)),new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Pos(x0))) (new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)),new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0))) (new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Pos(x0)),new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Pos(x0))) (new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)),new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0))) ---------------------------------------- (662) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_primRemInt(vuz69, vuz68)) new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Neg(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (663) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Neg(x0)) at position [0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Neg(Zero), Neg(x0)),new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Neg(Zero), Neg(x0))) ---------------------------------------- (664) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_primRemInt(vuz69, vuz68)) new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)) new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Neg(Zero), Neg(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (665) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (666) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_primRemInt(vuz69, vuz68)) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (667) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Pos(x0)) at position [0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Pos(Zero), Pos(x0)),new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Pos(Zero), Pos(x0))) ---------------------------------------- (668) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_primRemInt(vuz69, vuz68)) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)) new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Pos(Zero), Pos(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (669) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (670) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_primRemInt(vuz69, vuz68)) new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (671) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Neg(Zero), Pos(x0)) at position [0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Neg(Zero), Pos(x0)),new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Neg(Zero), Pos(x0))) ---------------------------------------- (672) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_primRemInt(vuz69, vuz68)) new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)) new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Neg(Zero), Pos(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (673) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (674) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_primRemInt(vuz69, vuz68)) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (675) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(new_error, Pos(Zero)), Pos(Zero), Neg(x0)) at position [0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Pos(Zero), Neg(x0)),new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Pos(Zero), Neg(x0))) ---------------------------------------- (676) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_primRemInt(vuz69, vuz68)) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(error([]), Pos(Zero)), Pos(Zero), Neg(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (677) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (678) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_primRemInt(vuz69, vuz68)) new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (679) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, vuz68, vuz69) -> new_gcd0Gcd'0(vuz68, new_primRemInt(vuz69, vuz68)) at position [1] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))),new_gcd0Gcd'1(False, Neg(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1)))) (new_gcd0Gcd'1(False, Pos(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))),new_gcd0Gcd'1(False, Pos(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1)))) (new_gcd0Gcd'1(False, Neg(Zero), Neg(x0)) -> new_gcd0Gcd'0(Neg(Zero), new_error),new_gcd0Gcd'1(False, Neg(Zero), Neg(x0)) -> new_gcd0Gcd'0(Neg(Zero), new_error)) (new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))),new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1)))) (new_gcd0Gcd'1(False, Pos(Zero), Pos(x0)) -> new_gcd0Gcd'0(Pos(Zero), new_error),new_gcd0Gcd'1(False, Pos(Zero), Pos(x0)) -> new_gcd0Gcd'0(Pos(Zero), new_error)) (new_gcd0Gcd'1(False, Neg(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))),new_gcd0Gcd'1(False, Neg(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1)))) (new_gcd0Gcd'1(False, Neg(Zero), Pos(x0)) -> new_gcd0Gcd'0(Neg(Zero), new_error),new_gcd0Gcd'1(False, Neg(Zero), Pos(x0)) -> new_gcd0Gcd'0(Neg(Zero), new_error)) (new_gcd0Gcd'1(False, Pos(Zero), Neg(x0)) -> new_gcd0Gcd'0(Pos(Zero), new_error),new_gcd0Gcd'1(False, Pos(Zero), Neg(x0)) -> new_gcd0Gcd'0(Pos(Zero), new_error)) ---------------------------------------- (680) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Neg(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(Zero), Neg(x0)) -> new_gcd0Gcd'0(Neg(Zero), new_error) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Pos(Zero), Pos(x0)) -> new_gcd0Gcd'0(Pos(Zero), new_error) new_gcd0Gcd'1(False, Neg(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(Zero), Pos(x0)) -> new_gcd0Gcd'0(Neg(Zero), new_error) new_gcd0Gcd'1(False, Pos(Zero), Neg(x0)) -> new_gcd0Gcd'0(Pos(Zero), new_error) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (681) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 4 less nodes. ---------------------------------------- (682) Complex Obligation (AND) ---------------------------------------- (683) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) 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_gcd0Gcd'1(False, Neg(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) 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_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_error new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) ---------------------------------------- (687) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (688) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(x0)), Neg(Zero)) -> new_gcd0Gcd'0(Neg(Succ(x0)), Neg(Zero)),new_gcd0Gcd'1(False, Neg(Succ(x0)), Neg(Zero)) -> new_gcd0Gcd'0(Neg(Succ(x0)), Neg(Zero))) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))),new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1)))) ---------------------------------------- (689) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(x0)), Neg(Zero)) -> new_gcd0Gcd'0(Neg(Succ(x0)), Neg(Zero)) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (690) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (691) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (692) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (693) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) 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_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (696) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (697) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (698) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Neg(x0)) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(Succ(Zero)))) (new_gcd0Gcd'0(Neg(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(x0)), Neg(Zero)),new_gcd0Gcd'0(Neg(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(x0)), Neg(Zero))) (new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Zero)))) (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0))))) (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0))))) ---------------------------------------- (699) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(x0)), Neg(Zero)) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (700) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (701) Complex Obligation (AND) ---------------------------------------- (702) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (703) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (704) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (705) 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_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) ---------------------------------------- (706) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (707) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0))))) ---------------------------------------- (708) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (709) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Neg(Succ(Zero))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero)))) ---------------------------------------- (710) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (711) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)))) ---------------------------------------- (712) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (713) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (714) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (715) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (716) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (717) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (718) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (719) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Zero))))) ---------------------------------------- (720) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (721) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (722) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (723) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0)))))) ---------------------------------------- (724) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (725) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)))) ---------------------------------------- (726) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (727) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (728) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (729) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (730) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (731) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (732) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (733) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0))))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (734) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (735) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (736) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (737) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0))))))) ---------------------------------------- (738) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (739) 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_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) Strictly oriented rules of the TRS R: new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero Used ordering: Polynomial interpretation [POLO]: POL(False) = 2 POL(Neg(x_1)) = 2*x_1 POL(Pos(x_1)) = 2*x_1 POL(Succ(x_1)) = 2 + 2*x_1 POL(True) = 1 POL(Zero) = 0 POL(new_gcd0Gcd'0(x_1, x_2)) = 2*x_1 + 2*x_2 POL(new_gcd0Gcd'1(x_1, x_2, x_3)) = 2 + x_1 + 2*x_2 + x_3 POL(new_primEqInt(x_1, x_2)) = 1 + x_1 + x_2 POL(new_primMinusNatS0(x_1, x_2)) = 2*x_1 + x_2 POL(new_primModNatS1(x_1, x_2)) = 1 + 2*x_1 + 2*x_2 ---------------------------------------- (740) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (741) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes. ---------------------------------------- (742) TRUE ---------------------------------------- (743) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (744) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (745) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (746) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (747) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (748) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) ---------------------------------------- (749) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (750) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (751) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (752) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (753) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (754) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) ---------------------------------------- (755) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (756) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (757) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (758) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) ---------------------------------------- (759) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (760) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (761) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (762) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (763) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (764) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (765) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (766) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (767) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (768) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (769) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (770) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (771) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (772) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (773) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (774) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (775) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (776) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (777) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (778) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (779) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (780) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (781) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (782) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (783) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (784) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (785) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (786) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (787) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (788) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (789) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (790) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (791) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (792) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (793) Complex Obligation (AND) ---------------------------------------- (794) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (795) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (796) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (797) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (798) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (799) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (800) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (801) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0))))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (802) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (803) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (804) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (805) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) ---------------------------------------- (806) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (807) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (808) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (809) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(False) = 0 POL(Neg(x_1)) = x_1 POL(Pos(x_1)) = 0 POL(Succ(x_1)) = 1 + x_1 POL(True) = 3 POL(Zero) = 3 POL(new_gcd0Gcd'0(x_1, x_2)) = 2*x_1 + 2*x_2 POL(new_gcd0Gcd'1(x_1, x_2, x_3)) = 2*x_2 + 2*x_3 POL(new_primEqInt(x_1, x_2)) = 0 POL(new_primMinusNatS0(x_1, x_2)) = 1 + x_1 POL(new_primModNatS01(x_1, x_2)) = 2 + x_1 POL(new_primModNatS02(x_1, x_2, x_3, x_4)) = 2 + x_1 POL(new_primModNatS1(x_1, x_2)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) ---------------------------------------- (810) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (811) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes. ---------------------------------------- (812) TRUE ---------------------------------------- (813) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (814) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero))))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (815) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (816) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (817) Complex Obligation (AND) ---------------------------------------- (818) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (819) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (820) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (821) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (822) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (823) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (824) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (825) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (826) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (827) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(False) = 0 POL(Neg(x_1)) = 2*x_1 POL(Pos(x_1)) = 0 POL(Succ(x_1)) = 1 + x_1 POL(True) = 3 POL(Zero) = 0 POL(new_gcd0Gcd'0(x_1, x_2)) = x_1 + x_2 POL(new_gcd0Gcd'1(x_1, x_2, x_3)) = x_2 + x_3 POL(new_primEqInt(x_1, x_2)) = 0 POL(new_primMinusNatS0(x_1, x_2)) = x_1 POL(new_primModNatS01(x_1, x_2)) = 2 + x_1 POL(new_primModNatS02(x_1, x_2, x_3, x_4)) = 2 + x_1 POL(new_primModNatS1(x_1, x_2)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) ---------------------------------------- (828) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (829) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes. ---------------------------------------- (830) TRUE ---------------------------------------- (831) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (832) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2))), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x4))))), Neg(Succ(Succ(Succ(Succ(x5)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x4)), Succ(Succ(x5)), x4, x5)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x5))))), Neg(Succ(Succ(Succ(Succ(x4)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x4))))), Neg(Succ(Succ(Succ(Succ(x5)))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(Succ(x3))=x12 & Succ(Succ(x2))=x13 & new_primModNatS02(x12, x13, x3, x2)=Succ(Succ(Succ(Succ(x5)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x12, x13, x3, x2)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraints: (3) (new_primModNatS01(x16, x15)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x14)))=x16 & Succ(Succ(Zero))=x15 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x14))), Succ(Succ(Zero)), Succ(x14), Zero)))) (4) (new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x18)))=x20 & Succ(Succ(Succ(x17)))=x19 & (\/x21:new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(Succ(x21)))) & Succ(Succ(x18))=x20 & Succ(Succ(x17))=x19 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x17))))), Neg(Succ(Succ(Succ(Succ(x18))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x17))))), Neg(new_primModNatS02(Succ(Succ(x18)), Succ(Succ(x17)), x18, x17)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x17)))))), Neg(Succ(Succ(Succ(Succ(Succ(x18)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x17)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x18))), Succ(Succ(Succ(x17))), Succ(x18), Succ(x17))))) (5) (new_primModNatS01(x23, x22)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x23 & Succ(Succ(Zero))=x22 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (6) (Succ(Succ(x26))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x26 & Succ(Succ(Succ(x24)))=x25 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x24)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x24)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x24))), Zero, Succ(x24))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x16, x15)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS0(Succ(x28), Succ(x27)), Succ(x27))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x14)))=x28 & Succ(Succ(Zero))=x27 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x14))), Succ(Succ(Zero)), Succ(x14), Zero)))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x18)))=x20 & Succ(Succ(Succ(x17)))=x19 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x17)))))), Neg(Succ(Succ(Succ(Succ(Succ(x18)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x17)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x18))), Succ(Succ(Succ(x17))), Succ(x18), Succ(x17))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x23, x22)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS0(Succ(x47), Succ(x46)), Succ(x46))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x47 & Succ(Succ(Zero))=x46 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x24)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x24)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x24))), Zero, Succ(x24))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x14))), Succ(Succ(Zero)), Succ(x14), Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraints: (12) (new_primModNatS01(x35, x34)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Succ(x33))))=x35 & Succ(Succ(Succ(Zero)))=x34 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x33))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x33)))), Succ(Succ(Succ(Zero))), Succ(Succ(x33)), Succ(Zero))))) (13) (new_primModNatS02(x39, x38, x37, x36)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Succ(x37))))=x39 & Succ(Succ(Succ(Succ(x36))))=x38 & (\/x40:new_primModNatS02(x39, x38, x37, x36)=Succ(Succ(Succ(Succ(x40)))) & Succ(Succ(Succ(x37)))=x39 & Succ(Succ(Succ(x36)))=x38 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x36)))))), Neg(Succ(Succ(Succ(Succ(Succ(x37)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x36)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x37))), Succ(Succ(Succ(x36))), Succ(x37), Succ(x36))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x37))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x37)))), Succ(Succ(Succ(Succ(x36)))), Succ(Succ(x37)), Succ(Succ(x36)))))) (14) (new_primModNatS01(x42, x41)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Zero)))=x42 & Succ(Succ(Succ(Zero)))=x41 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (15) (Succ(Succ(x45))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Zero)))=x45 & Succ(Succ(Succ(Succ(x43))))=x44 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x43)))), Succ(Zero), Succ(Succ(x43)))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x33))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x33)))), Succ(Succ(Succ(Zero))), Succ(Succ(x33)), Succ(Zero))))) We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: (17) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x37))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x37)))), Succ(Succ(Succ(Succ(x36)))), Succ(Succ(x37)), Succ(Succ(x36)))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x43)))), Succ(Zero), Succ(Succ(x43)))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x6))))), Neg(Succ(Succ(Succ(Succ(x7)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Succ(x6)))))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x8))))), Neg(Succ(Succ(Succ(Succ(x9)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Neg(new_primModNatS02(Succ(Succ(x9)), Succ(Succ(x8)), x9, x8))) which results in the following constraint: (1) (new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Succ(x6))))))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x8))))), Neg(Succ(Succ(Succ(Succ(x9)))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x6))))), Neg(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Succ(x6))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7))=x52 & Pos(Zero)=x53 & new_primEqInt(x52, x53)=False ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x6))))), Neg(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Succ(x6))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x52, x53)=False which results in the following new constraint: (3) (False=False & Neg(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7))=Neg(Succ(x55)) & Pos(Zero)=Pos(x54) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x6))))), Neg(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Succ(x6))))))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (4) (Succ(Succ(x6))=x56 & Succ(Succ(x7))=x57 & new_primModNatS02(x56, x57, x6, x7)=Succ(x55) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x6))))), Neg(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x7))))), Neg(Succ(Succ(Succ(Succ(x6))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x56, x57, x6, x7)=Succ(x55) which results in the following new constraints: (5) (new_primModNatS01(x60, x59)=Succ(x55) & Succ(Succ(Succ(x58)))=x60 & Succ(Succ(Zero))=x59 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x58)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x58))), Succ(Succ(Zero)), Succ(x58), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x58)))))))) (6) (new_primModNatS02(x64, x63, x62, x61)=Succ(x55) & Succ(Succ(Succ(x62)))=x64 & Succ(Succ(Succ(x61)))=x63 & (\/x65:new_primModNatS02(x64, x63, x62, x61)=Succ(x65) & Succ(Succ(x62))=x64 & Succ(Succ(x61))=x63 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x62))))), Neg(Succ(Succ(Succ(Succ(x61))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x62)), Succ(Succ(x61)), x62, x61)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x61))))), Neg(Succ(Succ(Succ(Succ(x62))))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x62)))))), Neg(Succ(Succ(Succ(Succ(Succ(x61)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x62))), Succ(Succ(Succ(x61))), Succ(x62), Succ(x61))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x61)))))), Neg(Succ(Succ(Succ(Succ(Succ(x62)))))))) (7) (new_primModNatS01(x67, x66)=Succ(x55) & Succ(Succ(Zero))=x67 & Succ(Succ(Zero))=x66 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) (8) (Succ(Succ(x70))=Succ(x55) & Succ(Succ(Zero))=x70 & Succ(Succ(Succ(x68)))=x69 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x68)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x68))), Zero, Succ(x68))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x68)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x60, x59)=Succ(x55) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS0(Succ(x72), Succ(x71)), Succ(x71))=Succ(x55) & Succ(Succ(Succ(x58)))=x72 & Succ(Succ(Zero))=x71 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x58)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x58))), Succ(Succ(Zero)), Succ(x58), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x58)))))))) We simplified constraint (6) using rule (IV) which results in the following new constraint: (10) (new_primModNatS02(x64, x63, x62, x61)=Succ(x55) & Succ(Succ(Succ(x62)))=x64 & Succ(Succ(Succ(x61)))=x63 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x62)))))), Neg(Succ(Succ(Succ(Succ(Succ(x61)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x62))), Succ(Succ(Succ(x61))), Succ(x62), Succ(x61))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x61)))))), Neg(Succ(Succ(Succ(Succ(Succ(x62)))))))) We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x67, x66)=Succ(x55) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS0(Succ(x91), Succ(x90)), Succ(x90))=Succ(x55) & Succ(Succ(Zero))=x91 & Succ(Succ(Zero))=x90 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (8) using rules (I), (II), (IV) which results in the following new constraint: (12) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x68)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x68))), Zero, Succ(x68))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x68)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (13) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x58)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x58))), Succ(Succ(Zero)), Succ(x58), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x58)))))))) We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x64, x63, x62, x61)=Succ(x55) which results in the following new constraints: (14) (new_primModNatS01(x79, x78)=Succ(x55) & Succ(Succ(Succ(Succ(x77))))=x79 & Succ(Succ(Succ(Zero)))=x78 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x77))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x77)))), Succ(Succ(Succ(Zero))), Succ(Succ(x77)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x77))))))))) (15) (new_primModNatS02(x83, x82, x81, x80)=Succ(x55) & Succ(Succ(Succ(Succ(x81))))=x83 & Succ(Succ(Succ(Succ(x80))))=x82 & (\/x84:new_primModNatS02(x83, x82, x81, x80)=Succ(x84) & Succ(Succ(Succ(x81)))=x83 & Succ(Succ(Succ(x80)))=x82 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x81)))))), Neg(Succ(Succ(Succ(Succ(Succ(x80)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x81))), Succ(Succ(Succ(x80))), Succ(x81), Succ(x80))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x80)))))), Neg(Succ(Succ(Succ(Succ(Succ(x81)))))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x81))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x81)))), Succ(Succ(Succ(Succ(x80)))), Succ(Succ(x81)), Succ(Succ(x80)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x81))))))))) (16) (new_primModNatS01(x86, x85)=Succ(x55) & Succ(Succ(Succ(Zero)))=x86 & Succ(Succ(Succ(Zero)))=x85 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) (17) (Succ(Succ(x89))=Succ(x55) & Succ(Succ(Succ(Zero)))=x89 & Succ(Succ(Succ(Succ(x87))))=x88 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x87))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x87)))), Succ(Zero), Succ(Succ(x87)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x87))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x77))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x77)))), Succ(Succ(Succ(Zero))), Succ(Succ(x77)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x77))))))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x81))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x81)))), Succ(Succ(Succ(Succ(x80)))), Succ(Succ(x81)), Succ(Succ(x80)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x81))))))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (17) using rules (I), (II), (IV) which results in the following new constraint: (21) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x87))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x87)))), Succ(Zero), Succ(Succ(x87)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x87))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: (22) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x43)))), Succ(Zero), Succ(Succ(x43)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x24)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x24)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x24))), Zero, Succ(x24))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x14))), Succ(Succ(Zero)), Succ(x14), Zero)))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x33))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x33)))), Succ(Succ(Succ(Zero))), Succ(Succ(x33)), Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x37))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x37)))), Succ(Succ(Succ(Succ(x36)))), Succ(Succ(x37)), Succ(Succ(x36)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x87))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x87)))), Succ(Zero), Succ(Succ(x87)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x87))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x68)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x68))), Zero, Succ(x68))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x68)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x58)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x58))), Succ(Succ(Zero)), Succ(x58), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x58)))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x77))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x77)))), Succ(Succ(Succ(Zero))), Succ(Succ(x77)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x77))))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x81))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x81)))), Succ(Succ(Succ(Succ(x80)))), Succ(Succ(x81)), Succ(Succ(x80)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x81))))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(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. ---------------------------------------- (833) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (834) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (835) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (836) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (837) 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_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_error new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) ---------------------------------------- (838) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (839) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(x0)), Pos(Zero)) -> new_gcd0Gcd'0(Pos(Succ(x0)), Pos(Zero)),new_gcd0Gcd'1(False, Pos(Succ(x0)), Pos(Zero)) -> new_gcd0Gcd'0(Pos(Succ(x0)), Pos(Zero))) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))),new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1)))) ---------------------------------------- (840) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(x0)), Pos(Zero)) -> new_gcd0Gcd'0(Pos(Succ(x0)), Pos(Zero)) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (841) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (842) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (843) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (844) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (845) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (846) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (847) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (848) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (849) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Pos(x0)) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(Succ(Zero))),new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(Succ(Zero)))) (new_gcd0Gcd'0(Pos(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(x0)), Pos(Zero)),new_gcd0Gcd'0(Pos(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(x0)), Pos(Zero))) (new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Zero))),new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Zero)))) (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0))))) (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0))))) ---------------------------------------- (850) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(x0)), Pos(Zero)) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (851) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (852) Complex Obligation (AND) ---------------------------------------- (853) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (854) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (855) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (856) 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_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) ---------------------------------------- (857) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (858) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0))))) ---------------------------------------- (859) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (860) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Pos(Succ(Zero))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))),new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero)))) ---------------------------------------- (861) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (862) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)))) ---------------------------------------- (863) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (864) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (865) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (866) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (867) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (868) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (869) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (870) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Zero))))) ---------------------------------------- (871) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (872) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (873) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (874) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0)))))) ---------------------------------------- (875) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (876) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)))) ---------------------------------------- (877) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (878) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (879) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (880) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (881) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (882) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (883) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (884) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0))))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (885) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (886) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (887) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (888) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0))))))) ---------------------------------------- (889) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primEqInt(Pos(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (890) 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(False) = 1 POL(Pos(x_1)) = x_1 POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS0(x_1, x_2)) = x_1 POL(new_primModNatS1(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 >= 2 *new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 > 2 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) ---------------------------------------- (891) YES ---------------------------------------- (892) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (893) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (894) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (895) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (896) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (897) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) ---------------------------------------- (898) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (899) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (900) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (901) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (902) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (903) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) ---------------------------------------- (904) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (905) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (906) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (907) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) ---------------------------------------- (908) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (909) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (910) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (911) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (912) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (913) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (914) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (915) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (916) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (917) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (918) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (919) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (920) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (921) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (922) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (923) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (924) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (925) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (926) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (927) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (928) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (929) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (930) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (931) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (932) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (933) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (934) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (935) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (936) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (937) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (938) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (939) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (940) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (941) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (942) Complex Obligation (AND) ---------------------------------------- (943) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (944) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (945) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (946) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (947) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (948) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (949) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (950) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0))))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (951) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (952) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (953) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (954) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) ---------------------------------------- (955) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (956) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (957) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (958) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(False) = 0 POL(Pos(x_1)) = 2*x_1 POL(Succ(x_1)) = 1 + x_1 POL(True) = 3 POL(Zero) = 1 POL(new_gcd0Gcd'0(x_1, x_2)) = 2 + x_1 + x_2 POL(new_gcd0Gcd'1(x_1, x_2, x_3)) = 2 + x_2 + x_3 POL(new_primEqInt(x_1, x_2)) = 0 POL(new_primMinusNatS0(x_1, x_2)) = 1 + x_1 POL(new_primModNatS01(x_1, x_2)) = 2 + x_1 POL(new_primModNatS02(x_1, x_2, x_3, x_4)) = 2 + x_1 POL(new_primModNatS1(x_1, x_2)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) ---------------------------------------- (959) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (960) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes. ---------------------------------------- (961) TRUE ---------------------------------------- (962) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (963) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero))))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (964) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (965) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (966) Complex Obligation (AND) ---------------------------------------- (967) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (968) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (969) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (970) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (971) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (972) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (973) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (974) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (975) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (976) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(False) = 0 POL(Pos(x_1)) = 2*x_1 POL(Succ(x_1)) = 1 + x_1 POL(True) = 3 POL(Zero) = 0 POL(new_gcd0Gcd'0(x_1, x_2)) = 2 + x_1 + x_2 POL(new_gcd0Gcd'1(x_1, x_2, x_3)) = 2 + x_2 + x_3 POL(new_primEqInt(x_1, x_2)) = 0 POL(new_primMinusNatS0(x_1, x_2)) = x_1 POL(new_primModNatS01(x_1, x_2)) = 1 + x_1 POL(new_primModNatS02(x_1, x_2, x_3, x_4)) = 2 + x_1 POL(new_primModNatS1(x_1, x_2)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) ---------------------------------------- (977) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (978) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes. ---------------------------------------- (979) TRUE ---------------------------------------- (980) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (981) QReductionProof (EQUIVALENT) We deleted the following terms from Q as they contain symbols which do neither occur in P nor in R.[THIEMANN]. new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) ---------------------------------------- (982) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primModNatS1(Succ(Zero), Succ(x0)) We have to consider all (P,Q,R)-chains. ---------------------------------------- (983) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2))), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x4))))), Pos(Succ(Succ(Succ(Succ(x5)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x4)), Succ(Succ(x5)), x4, x5)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x5))))), Pos(Succ(Succ(Succ(Succ(x4)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x4))))), Pos(Succ(Succ(Succ(Succ(x5)))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(Succ(x3))=x12 & Succ(Succ(x2))=x13 & new_primModNatS02(x12, x13, x3, x2)=Succ(Succ(Succ(Succ(x5)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x12, x13, x3, x2)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraints: (3) (new_primModNatS01(x16, x15)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x14)))=x16 & Succ(Succ(Zero))=x15 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x14))), Succ(Succ(Zero)), Succ(x14), Zero)))) (4) (new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x18)))=x20 & Succ(Succ(Succ(x17)))=x19 & (\/x21:new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(Succ(x21)))) & Succ(Succ(x18))=x20 & Succ(Succ(x17))=x19 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x17))))), Pos(Succ(Succ(Succ(Succ(x18))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x17))))), Pos(new_primModNatS02(Succ(Succ(x18)), Succ(Succ(x17)), x18, x17)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x17)))))), Pos(Succ(Succ(Succ(Succ(Succ(x18)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x17)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x18))), Succ(Succ(Succ(x17))), Succ(x18), Succ(x17))))) (5) (new_primModNatS01(x23, x22)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x23 & Succ(Succ(Zero))=x22 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (6) (Succ(Succ(x26))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x26 & Succ(Succ(Succ(x24)))=x25 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x24)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x24)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x24))), Zero, Succ(x24))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x16, x15)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS0(Succ(x28), Succ(x27)), Succ(x27))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x14)))=x28 & Succ(Succ(Zero))=x27 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x14))), Succ(Succ(Zero)), Succ(x14), Zero)))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x18)))=x20 & Succ(Succ(Succ(x17)))=x19 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x17)))))), Pos(Succ(Succ(Succ(Succ(Succ(x18)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x17)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x18))), Succ(Succ(Succ(x17))), Succ(x18), Succ(x17))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x23, x22)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS0(Succ(x47), Succ(x46)), Succ(x46))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x47 & Succ(Succ(Zero))=x46 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x24)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x24)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x24))), Zero, Succ(x24))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x14))), Succ(Succ(Zero)), Succ(x14), Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraints: (12) (new_primModNatS01(x35, x34)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Succ(x33))))=x35 & Succ(Succ(Succ(Zero)))=x34 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x33))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x33)))), Succ(Succ(Succ(Zero))), Succ(Succ(x33)), Succ(Zero))))) (13) (new_primModNatS02(x39, x38, x37, x36)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Succ(x37))))=x39 & Succ(Succ(Succ(Succ(x36))))=x38 & (\/x40:new_primModNatS02(x39, x38, x37, x36)=Succ(Succ(Succ(Succ(x40)))) & Succ(Succ(Succ(x37)))=x39 & Succ(Succ(Succ(x36)))=x38 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x36)))))), Pos(Succ(Succ(Succ(Succ(Succ(x37)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x36)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x37))), Succ(Succ(Succ(x36))), Succ(x37), Succ(x36))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x37))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x37)))), Succ(Succ(Succ(Succ(x36)))), Succ(Succ(x37)), Succ(Succ(x36)))))) (14) (new_primModNatS01(x42, x41)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Zero)))=x42 & Succ(Succ(Succ(Zero)))=x41 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (15) (Succ(Succ(x45))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Zero)))=x45 & Succ(Succ(Succ(Succ(x43))))=x44 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x43)))), Succ(Zero), Succ(Succ(x43)))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x33))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x33)))), Succ(Succ(Succ(Zero))), Succ(Succ(x33)), Succ(Zero))))) We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: (17) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x37))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x37)))), Succ(Succ(Succ(Succ(x36)))), Succ(Succ(x37)), Succ(Succ(x36)))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x43)))), Succ(Zero), Succ(Succ(x43)))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x6))))), Pos(Succ(Succ(Succ(Succ(x7)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Succ(x6)))))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Succ(Succ(x9)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x8))))), Pos(new_primModNatS02(Succ(Succ(x9)), Succ(Succ(x8)), x9, x8))) which results in the following constraint: (1) (new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Succ(x6))))))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Succ(Succ(x9)))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x6))))), Pos(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Succ(x6))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7))=x52 & Pos(Zero)=x53 & new_primEqInt(x52, x53)=False ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x6))))), Pos(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Succ(x6))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x52, x53)=False which results in the following new constraint: (3) (False=False & Pos(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7))=Pos(Succ(x54)) & Pos(Zero)=Pos(Zero) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x6))))), Pos(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Succ(x6))))))) We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: (4) (Succ(Succ(x6))=x55 & Succ(Succ(x7))=x56 & new_primModNatS02(x55, x56, x6, x7)=Succ(x54) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x6))))), Pos(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x6)), Succ(Succ(x7)), x6, x7)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Succ(x6))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x55, x56, x6, x7)=Succ(x54) which results in the following new constraints: (5) (new_primModNatS01(x59, x58)=Succ(x54) & Succ(Succ(Succ(x57)))=x59 & Succ(Succ(Zero))=x58 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x57)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x57))), Succ(Succ(Zero)), Succ(x57), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x57)))))))) (6) (new_primModNatS02(x63, x62, x61, x60)=Succ(x54) & Succ(Succ(Succ(x61)))=x63 & Succ(Succ(Succ(x60)))=x62 & (\/x64:new_primModNatS02(x63, x62, x61, x60)=Succ(x64) & Succ(Succ(x61))=x63 & Succ(Succ(x60))=x62 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x61))))), Pos(Succ(Succ(Succ(Succ(x60))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x61)), Succ(Succ(x60)), x61, x60)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x60))))), Pos(Succ(Succ(Succ(Succ(x61))))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x61)))))), Pos(Succ(Succ(Succ(Succ(Succ(x60)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x61))), Succ(Succ(Succ(x60))), Succ(x61), Succ(x60))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x60)))))), Pos(Succ(Succ(Succ(Succ(Succ(x61)))))))) (7) (new_primModNatS01(x66, x65)=Succ(x54) & Succ(Succ(Zero))=x66 & Succ(Succ(Zero))=x65 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) (8) (Succ(Succ(x69))=Succ(x54) & Succ(Succ(Zero))=x69 & Succ(Succ(Succ(x67)))=x68 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x67)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x67))), Zero, Succ(x67))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x67)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x59, x58)=Succ(x54) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS0(Succ(x71), Succ(x70)), Succ(x70))=Succ(x54) & Succ(Succ(Succ(x57)))=x71 & Succ(Succ(Zero))=x70 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x57)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x57))), Succ(Succ(Zero)), Succ(x57), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x57)))))))) We simplified constraint (6) using rule (IV) which results in the following new constraint: (10) (new_primModNatS02(x63, x62, x61, x60)=Succ(x54) & Succ(Succ(Succ(x61)))=x63 & Succ(Succ(Succ(x60)))=x62 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x61)))))), Pos(Succ(Succ(Succ(Succ(Succ(x60)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x61))), Succ(Succ(Succ(x60))), Succ(x61), Succ(x60))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x60)))))), Pos(Succ(Succ(Succ(Succ(Succ(x61)))))))) We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x66, x65)=Succ(x54) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS0(Succ(x90), Succ(x89)), Succ(x89))=Succ(x54) & Succ(Succ(Zero))=x90 & Succ(Succ(Zero))=x89 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (8) using rules (I), (II), (IV) which results in the following new constraint: (12) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x67)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x67))), Zero, Succ(x67))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x67)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (13) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x57)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x57))), Succ(Succ(Zero)), Succ(x57), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x57)))))))) We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x63, x62, x61, x60)=Succ(x54) which results in the following new constraints: (14) (new_primModNatS01(x78, x77)=Succ(x54) & Succ(Succ(Succ(Succ(x76))))=x78 & Succ(Succ(Succ(Zero)))=x77 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x76))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x76)))), Succ(Succ(Succ(Zero))), Succ(Succ(x76)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x76))))))))) (15) (new_primModNatS02(x82, x81, x80, x79)=Succ(x54) & Succ(Succ(Succ(Succ(x80))))=x82 & Succ(Succ(Succ(Succ(x79))))=x81 & (\/x83:new_primModNatS02(x82, x81, x80, x79)=Succ(x83) & Succ(Succ(Succ(x80)))=x82 & Succ(Succ(Succ(x79)))=x81 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x80)))))), Pos(Succ(Succ(Succ(Succ(Succ(x79)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x80))), Succ(Succ(Succ(x79))), Succ(x80), Succ(x79))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x79)))))), Pos(Succ(Succ(Succ(Succ(Succ(x80)))))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x80)))), Succ(Succ(Succ(Succ(x79)))), Succ(Succ(x80)), Succ(Succ(x79)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))))) (16) (new_primModNatS01(x85, x84)=Succ(x54) & Succ(Succ(Succ(Zero)))=x85 & Succ(Succ(Succ(Zero)))=x84 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) (17) (Succ(Succ(x88))=Succ(x54) & Succ(Succ(Succ(Zero)))=x88 & Succ(Succ(Succ(Succ(x86))))=x87 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x86))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x86)))), Succ(Zero), Succ(Succ(x86)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x86))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x76))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x76)))), Succ(Succ(Succ(Zero))), Succ(Succ(x76)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x76))))))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x80)))), Succ(Succ(Succ(Succ(x79)))), Succ(Succ(x80)), Succ(Succ(x79)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (17) using rules (I), (II), (IV) which results in the following new constraint: (21) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x86))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x86)))), Succ(Zero), Succ(Succ(x86)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x86))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: (22) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x43))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x43)))), Succ(Zero), Succ(Succ(x43)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x24)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x24)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x24))), Zero, Succ(x24))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x14))), Succ(Succ(Zero)), Succ(x14), Zero)))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x33))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x33)))), Succ(Succ(Succ(Zero))), Succ(Succ(x33)), Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x37))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x37)))), Succ(Succ(Succ(Succ(x36)))), Succ(Succ(x37)), Succ(Succ(x36)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x86))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x86)))), Succ(Zero), Succ(Succ(x86)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x86))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x67)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x67))), Zero, Succ(x67))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x67)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x57)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x57))), Succ(Succ(Zero)), Succ(x57), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x57)))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x76))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x76)))), Succ(Succ(Succ(Zero))), Succ(Succ(x76)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x76))))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x80)))), Succ(Succ(Succ(Succ(x79)))), Succ(Succ(x80)), Succ(Succ(x79)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x79))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x80))))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(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. ---------------------------------------- (984) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (985) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz690), Neg(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Succ(vuz6800))) -> Pos(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Neg(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz690), Neg(Succ(vuz6800))) -> Neg(new_primModNatS1(vuz690, vuz6800)) new_primRemInt(Pos(vuz690), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz690), Pos(Zero)) -> new_error new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (986) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (987) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (988) 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_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_error new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) ---------------------------------------- (989) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (990) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(x1)), Pos(x0)) -> new_gcd0Gcd'0(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(x0)), Pos(Zero)) -> new_gcd0Gcd'0(Neg(Succ(x0)), Pos(Zero)),new_gcd0Gcd'1(False, Neg(Succ(x0)), Pos(Zero)) -> new_gcd0Gcd'0(Neg(Succ(x0)), Pos(Zero))) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))),new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1)))) ---------------------------------------- (991) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(x0)), Pos(Zero)) -> new_gcd0Gcd'0(Neg(Succ(x0)), Pos(Zero)) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (992) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (993) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (994) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (995) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (996) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (997) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (998) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (999) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1000) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(x0, x1)), Pos(Zero)), Neg(Succ(x1)), Pos(x0)) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(Succ(Zero))),new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(Succ(Zero)))) (new_gcd0Gcd'0(Pos(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(x0)), Pos(Zero)),new_gcd0Gcd'0(Pos(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(x0)), Pos(Zero))) (new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Zero))),new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Zero)))) (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0))))) (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0))))) ---------------------------------------- (1001) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero), Pos(Zero)), Neg(Succ(x0)), Pos(Zero)) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1002) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (1003) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1004) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(x0))), Pos(Succ(Zero))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))),new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero)))) ---------------------------------------- (1005) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1006) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0))))) ---------------------------------------- (1007) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1008) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(x0, x1)), Pos(Zero)), Pos(Succ(x1)), Neg(x0)) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(Succ(Zero)))) (new_gcd0Gcd'0(Neg(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(x0)), Neg(Zero)),new_gcd0Gcd'0(Neg(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(x0)), Neg(Zero))) (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero)))) (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0))))) (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0))))) ---------------------------------------- (1009) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(x0)), Neg(Zero)) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1010) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1011) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1012) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0))))) ---------------------------------------- (1013) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1014) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(x0))), Neg(Succ(Zero))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero)))) ---------------------------------------- (1015) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1016) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero)))) ---------------------------------------- (1017) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1018) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero)))) ---------------------------------------- (1019) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1020) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1021) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1022) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (1023) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1024) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (1025) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1026) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (1027) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1028) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (1029) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1030) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))))) ---------------------------------------- (1031) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1032) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (1033) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1034) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Zero, Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Zero, Succ(Zero))))) ---------------------------------------- (1035) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Zero, Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1036) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1037) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1038) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(x1)), Neg(x0)) -> new_gcd0Gcd'0(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(x0)), Neg(Zero)) -> new_gcd0Gcd'0(Pos(Succ(x0)), Neg(Zero)),new_gcd0Gcd'1(False, Pos(Succ(x0)), Neg(Zero)) -> new_gcd0Gcd'0(Pos(Succ(x0)), Neg(Zero))) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))),new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1)))) ---------------------------------------- (1039) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(x0)), Neg(Zero)) -> new_gcd0Gcd'0(Pos(Succ(x0)), Neg(Zero)) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1040) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 2 less nodes. ---------------------------------------- (1041) Complex Obligation (AND) ---------------------------------------- (1042) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1043) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (1044) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1045) 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_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) ---------------------------------------- (1046) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1047) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)))) ---------------------------------------- (1048) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1049) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (1050) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1051) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (1052) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1053) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1054) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1055) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Zero))))) ---------------------------------------- (1056) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1057) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1058) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1059) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0)))))) ---------------------------------------- (1060) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1061) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)))) ---------------------------------------- (1062) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1063) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (1064) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1065) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (1066) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1067) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1068) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1069) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0))))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1070) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1071) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1072) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1073) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0))))))) ---------------------------------------- (1074) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1075) 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(False) = 1 POL(Neg(x_1)) = 1 POL(Pos(x_1)) = x_1 POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS0(x_1, x_2)) = x_1 POL(new_primModNatS1(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'1(False, Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 >= 2 *new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 > 2 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) ---------------------------------------- (1076) YES ---------------------------------------- (1077) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1078) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (1079) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1080) 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_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS02(x0, x1, Zero, Succ(x2)) ---------------------------------------- (1081) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1082) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (1083) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1084) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero))))) ---------------------------------------- (1085) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1086) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0)))))) ---------------------------------------- (1087) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1088) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero))))) ---------------------------------------- (1089) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1090) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero))))) ---------------------------------------- (1091) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1092) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1093) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1094) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0))))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1095) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1096) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0))))))) ---------------------------------------- (1097) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1098) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1099) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1100) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1101) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1102) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1103) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1104) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)))) ---------------------------------------- (1105) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1106) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1107) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1108) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (1109) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1110) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(x0))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero)))) ---------------------------------------- (1111) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1112) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1113) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1114) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x0), Zero), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (1115) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero The set Q consists of the following terms: new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1116) 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(False) = 1 POL(Neg(x_1)) = x_1 POL(Pos(x_1)) = 1 POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS0(x_1, x_2)) = x_1 POL(new_primModNatS1(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero)), Pos(Zero)), Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 > 2 *new_gcd0Gcd'1(False, Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 >= 2 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) ---------------------------------------- (1117) YES ---------------------------------------- (1118) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS0(Zero, Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Zero) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz69000), Zero), Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1119) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (1120) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1121) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero))))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1122) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1123) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (1124) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1125) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (1126) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1127) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (1128) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1129) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (1130) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1131) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (1132) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1133) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))))) ---------------------------------------- (1134) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1135) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (1136) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1137) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Zero, Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))))) ---------------------------------------- (1138) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Zero, Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1139) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1140) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1141) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (1142) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1143) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (1144) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1145) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (1146) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1147) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (1148) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1149) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero))))) ---------------------------------------- (1150) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1151) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (1152) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1153) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Zero, Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Zero, Succ(Zero))))) ---------------------------------------- (1154) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Zero, Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1155) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1156) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1157) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Pos(Succ(Succ(x1))), Neg(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (1158) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1159) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1160) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1161) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) ---------------------------------------- (1162) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1163) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (1164) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1165) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) ---------------------------------------- (1166) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1167) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2)))))) ---------------------------------------- (1168) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1169) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero)))) ---------------------------------------- (1170) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1171) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1172) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1173) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0))))))) ---------------------------------------- (1174) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1175) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1176) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1177) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1)), Pos(Zero)), Neg(Succ(Succ(x1))), Pos(Succ(Succ(x0)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (1178) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1179) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 1 less node. ---------------------------------------- (1180) Complex Obligation (AND) ---------------------------------------- (1181) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1182) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (1183) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1184) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) ---------------------------------------- (1185) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1186) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) ---------------------------------------- (1187) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1188) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2)))))) ---------------------------------------- (1189) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1190) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))),new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero)))) ---------------------------------------- (1191) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1192) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1193) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1194) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0))))))) ---------------------------------------- (1195) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1196) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1197) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1198) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x1, Zero, x1, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x1)))))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x2, Zero, x2, Zero))) which results in the following constraint: (1) (new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x1, Zero, x1, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x1))))))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x2)))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x1, Zero, x1, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x1))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS02(x1, Zero, x1, Zero))=x20 & Pos(Zero)=x21 & new_primEqInt(x20, x21)=False ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x1, Zero, x1, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x1))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x20, x21)=False which results in the following new constraint: (3) (False=False & Pos(new_primModNatS02(x1, Zero, x1, Zero))=Pos(Succ(x22)) & Pos(Zero)=Pos(Zero) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x1, Zero, x1, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x1))))))) We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: (4) (Zero=x23 & x1=x24 & Zero=x25 & new_primModNatS02(x1, x23, x24, x25)=Succ(x22) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x1))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x1, Zero, x1, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x1))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1, x23, x24, x25)=Succ(x22) which results in the following new constraints: (5) (new_primModNatS01(x28, x27)=Succ(x22) & Zero=x27 & x28=Succ(x26) & Zero=Zero ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x28))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x28, Zero, x28, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x28))))))) (6) (new_primModNatS02(x32, x31, x30, x29)=Succ(x22) & Zero=x31 & x32=Succ(x30) & Zero=Succ(x29) & (\/x33:new_primModNatS02(x32, x31, x30, x29)=Succ(x33) & Zero=x31 & x32=x30 & Zero=x29 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x32))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x32, Zero, x32, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x32))))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x32))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x32, Zero, x32, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x32))))))) (7) (new_primModNatS01(x35, x34)=Succ(x22) & Zero=x34 & x35=Zero & Zero=Zero ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x35))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x35, Zero, x35, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x35))))))) (8) (Succ(Succ(x38))=Succ(x22) & Zero=x37 & x38=Zero & Zero=Succ(x36) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x38))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x38, Zero, x38, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x38))))))) We simplified constraint (5) using rules (I), (II), (III), (VII) which results in the following new constraint: (9) (Succ(x26)=x39 & new_primModNatS01(x39, x27)=Succ(x22) & Zero=x27 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x26)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x26), Zero, Succ(x26), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x26)))))))) We solved constraint (6) using rules (I), (II).We simplified constraint (7) using rules (I), (II), (III), (VII) which results in the following new constraint: (10) (Zero=x46 & new_primModNatS01(x46, x34)=Succ(x22) & Zero=x34 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We solved constraint (8) using rules (I), (II).We simplified constraint (9) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x39, x27)=Succ(x22) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS0(Succ(x41), Succ(x40)), Succ(x40))=Succ(x22) & Succ(x26)=x41 & Zero=x40 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x26)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x26), Zero, Succ(x26), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x26)))))))) We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: (12) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x26)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x26), Zero, Succ(x26), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x26)))))))) We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x46, x34)=Succ(x22) which results in the following new constraint: (13) (new_primModNatS1(new_primMinusNatS0(Succ(x48), Succ(x47)), Succ(x47))=Succ(x22) & Zero=x48 & Zero=x47 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (13) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x7)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x7, Zero, x7, Zero))), new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x8))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x8)))), Neg(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x7, Zero, x7, Zero)))=new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x8))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x7, Zero, x7, Zero)))) We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: (2) (Zero=x53 & x7=x54 & Zero=x55 & new_primModNatS02(x7, x53, x54, x55)=Succ(Succ(Succ(x8))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x7, Zero, x7, Zero)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x7, x53, x54, x55)=Succ(Succ(Succ(x8))) which results in the following new constraints: (3) (new_primModNatS01(x58, x57)=Succ(Succ(Succ(x8))) & Zero=x57 & x58=Succ(x56) & Zero=Zero ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x58))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x58, Zero, x58, Zero)))) (4) (new_primModNatS02(x62, x61, x60, x59)=Succ(Succ(Succ(x8))) & Zero=x61 & x62=Succ(x60) & Zero=Succ(x59) & (\/x63:new_primModNatS02(x62, x61, x60, x59)=Succ(Succ(Succ(x63))) & Zero=x61 & x62=x60 & Zero=x59 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x62))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x62, Zero, x62, Zero)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x62))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x62, Zero, x62, Zero)))) (5) (new_primModNatS01(x65, x64)=Succ(Succ(Succ(x8))) & Zero=x64 & x65=Zero & Zero=Zero ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x65))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x65, Zero, x65, Zero)))) (6) (Succ(Succ(x68))=Succ(Succ(Succ(x8))) & Zero=x67 & x68=Zero & Zero=Succ(x66) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x68))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x68, Zero, x68, Zero)))) We simplified constraint (3) using rules (I), (II), (III), (VII) which results in the following new constraint: (7) (Succ(x56)=x69 & new_primModNatS01(x69, x57)=Succ(Succ(Succ(x8))) & Zero=x57 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x56)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x56), Zero, Succ(x56), Zero)))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rules (I), (II), (III), (VII) which results in the following new constraint: (8) (Zero=x76 & new_primModNatS01(x76, x64)=Succ(Succ(Succ(x8))) & Zero=x64 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) We solved constraint (6) using rules (I), (II).We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x69, x57)=Succ(Succ(Succ(x8))) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS0(Succ(x71), Succ(x70)), Succ(x70))=Succ(Succ(Succ(x8))) & Succ(x56)=x71 & Zero=x70 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x56)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x56), Zero, Succ(x56), Zero)))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x56)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x56), Zero, Succ(x56), Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x76, x64)=Succ(Succ(Succ(x8))) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS0(Succ(x78), Succ(x77)), Succ(x77))=Succ(Succ(Succ(x8))) & Zero=x78 & Zero=x77 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: (12) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x13))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x13)))), Neg(Succ(Succ(Zero)))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x14)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x14)))), Neg(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x13)))), Neg(Succ(Succ(Zero))))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x14)))), Neg(Succ(Succ(Zero)))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x13)))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x13)))), Neg(Succ(Succ(Zero))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x13)))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x13)))), Neg(Succ(Succ(Zero))))) For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x15)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x15)))), Neg(Succ(Succ(Zero)))), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x16, Zero, x16, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x16)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x15)))), Neg(Succ(Succ(Zero))))=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(Zero)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x15)))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x15)))), Neg(Succ(Succ(Zero))))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(Zero))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x26)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x26), Zero, Succ(x26), Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x26)))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))) *new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Succ(x56)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x56), Zero, Succ(x56), Zero)))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero, Zero, Zero)))) *new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x13)))))_>=_new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x13)))), Neg(Succ(Succ(Zero))))) *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x16))))), Neg(Succ(Succ(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. ---------------------------------------- (1199) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1200) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1201) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (1202) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1203) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (1204) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) 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_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1207) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x3, Zero, x3, Zero))), new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x4))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x4)))), Pos(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x3, Zero, x3, Zero)))=new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x4))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x3, Zero, x3, Zero)))) We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: (2) (Zero=x20 & x3=x21 & Zero=x22 & new_primModNatS02(x3, x20, x21, x22)=Succ(Succ(Succ(x4))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x3, Zero, x3, Zero)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x3, x20, x21, x22)=Succ(Succ(Succ(x4))) which results in the following new constraints: (3) (new_primModNatS01(x25, x24)=Succ(Succ(Succ(x4))) & Zero=x24 & x25=Succ(x23) & Zero=Zero ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x25))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x25, Zero, x25, Zero)))) (4) (new_primModNatS02(x29, x28, x27, x26)=Succ(Succ(Succ(x4))) & Zero=x28 & x29=Succ(x27) & Zero=Succ(x26) & (\/x30:new_primModNatS02(x29, x28, x27, x26)=Succ(Succ(Succ(x30))) & Zero=x28 & x29=x27 & Zero=x26 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x29))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x29, Zero, x29, Zero)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x29))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x29, Zero, x29, Zero)))) (5) (new_primModNatS01(x32, x31)=Succ(Succ(Succ(x4))) & Zero=x31 & x32=Zero & Zero=Zero ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x32))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x32, Zero, x32, Zero)))) (6) (Succ(Succ(x35))=Succ(Succ(Succ(x4))) & Zero=x34 & x35=Zero & Zero=Succ(x33) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x35))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x35, Zero, x35, Zero)))) We simplified constraint (3) using rules (I), (II), (III), (VII) which results in the following new constraint: (7) (Succ(x23)=x36 & new_primModNatS01(x36, x24)=Succ(Succ(Succ(x4))) & Zero=x24 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Succ(x23)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x23), Zero, Succ(x23), Zero)))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rules (I), (II), (III), (VII) which results in the following new constraint: (8) (Zero=x43 & new_primModNatS01(x43, x31)=Succ(Succ(Succ(x4))) & Zero=x31 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) We solved constraint (6) using rules (I), (II).We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x36, x24)=Succ(Succ(Succ(x4))) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS0(Succ(x38), Succ(x37)), Succ(x37))=Succ(Succ(Succ(x4))) & Succ(x23)=x38 & Zero=x37 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Succ(x23)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x23), Zero, Succ(x23), Zero)))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Succ(x23)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x23), Zero, Succ(x23), Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x43, x31)=Succ(Succ(Succ(x4))) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS0(Succ(x45), Succ(x44)), Succ(x44))=Succ(Succ(Succ(x4))) & Zero=x45 & Zero=x44 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: (12) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x7)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x7)))), Pos(Succ(Succ(Zero)))), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x8, Zero, x8, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x8)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x7)))), Pos(Succ(Succ(Zero))))=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Zero)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x7)))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x7)))), Pos(Succ(Succ(Zero))))) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Zero))))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x10))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x10, Zero, x10, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x10)))))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x11)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x11, Zero, x11, Zero))) which results in the following constraint: (1) (new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x10, Zero, x10, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x10))))))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x11)))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x10))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x10, Zero, x10, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x10))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS02(x10, Zero, x10, Zero))=x50 & Pos(Zero)=x51 & new_primEqInt(x50, x51)=False ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x10))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x10, Zero, x10, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x10))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x50, x51)=False which results in the following new constraint: (3) (False=False & Neg(new_primModNatS02(x10, Zero, x10, Zero))=Neg(Succ(x53)) & Pos(Zero)=Pos(x52) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x10))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x10, Zero, x10, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x10))))))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (4) (Zero=x54 & x10=x55 & Zero=x56 & new_primModNatS02(x10, x54, x55, x56)=Succ(x53) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x10))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x10, Zero, x10, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x10))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x10, x54, x55, x56)=Succ(x53) which results in the following new constraints: (5) (new_primModNatS01(x59, x58)=Succ(x53) & Zero=x58 & x59=Succ(x57) & Zero=Zero ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x59))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x59, Zero, x59, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x59))))))) (6) (new_primModNatS02(x63, x62, x61, x60)=Succ(x53) & Zero=x62 & x63=Succ(x61) & Zero=Succ(x60) & (\/x64:new_primModNatS02(x63, x62, x61, x60)=Succ(x64) & Zero=x62 & x63=x61 & Zero=x60 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x63))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x63, Zero, x63, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x63))))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x63))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x63, Zero, x63, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x63))))))) (7) (new_primModNatS01(x66, x65)=Succ(x53) & Zero=x65 & x66=Zero & Zero=Zero ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x66))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x66, Zero, x66, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x66))))))) (8) (Succ(Succ(x69))=Succ(x53) & Zero=x68 & x69=Zero & Zero=Succ(x67) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x69))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x69, Zero, x69, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x69))))))) We simplified constraint (5) using rules (I), (II), (III), (VII) which results in the following new constraint: (9) (Succ(x57)=x70 & new_primModNatS01(x70, x58)=Succ(x53) & Zero=x58 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x57)))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x57), Zero, Succ(x57), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Succ(x57)))))))) We solved constraint (6) using rules (I), (II).We simplified constraint (7) using rules (I), (II), (III), (VII) which results in the following new constraint: (10) (Zero=x77 & new_primModNatS01(x77, x65)=Succ(x53) & Zero=x65 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We solved constraint (8) using rules (I), (II).We simplified constraint (9) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x70, x58)=Succ(x53) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS0(Succ(x72), Succ(x71)), Succ(x71))=Succ(x53) & Succ(x57)=x72 & Zero=x71 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x57)))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x57), Zero, Succ(x57), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Succ(x57)))))))) We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: (12) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x57)))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x57), Zero, Succ(x57), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Succ(x57)))))))) We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x77, x65)=Succ(x53) which results in the following new constraint: (13) (new_primModNatS1(new_primMinusNatS0(Succ(x79), Succ(x78)), Succ(x78))=Succ(x53) & Zero=x79 & Zero=x78 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (13) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Zero))))))) For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x16))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x16)))), Pos(Succ(Succ(Zero)))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x17)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x17)))), Pos(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x16)))), Pos(Succ(Succ(Zero))))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x17)))), Pos(Succ(Succ(Zero)))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x16)))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x16)))), Pos(Succ(Succ(Zero))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x16)))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x16)))), Pos(Succ(Succ(Zero))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Succ(x23)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x23), Zero, Succ(x23), Zero)))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Zero))))) *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x57)))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x57), Zero, Succ(x57), Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Succ(x57)))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Zero, Zero, Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(Zero))))))) *new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x16)))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x16)))), Pos(Succ(Succ(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. ---------------------------------------- (1208) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(x0, Zero, x0, Zero)), Pos(Zero)), Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1209) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1210) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1211) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1212) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (1213) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1214) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1215) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1216) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1217) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1218) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (1219) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1220) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1221) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1222) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (1223) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1224) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1225) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1226) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (1227) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1228) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(Zero, Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1229) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1230) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1231) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1232) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1233) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1234) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(x3)))), Pos(Succ(Succ(Succ(x2))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero)))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1235) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1236) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (1237) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1238) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (1239) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1240) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1241) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1242) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (1243) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1244) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (1245) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1246) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2))))))) ---------------------------------------- (1247) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1248) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(x3)))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero)))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero))))) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (1249) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1250) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 1 less node. ---------------------------------------- (1251) Complex Obligation (AND) ---------------------------------------- (1252) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) 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_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1255) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (1256) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1257) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (1258) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1259) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (1260) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1261) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS0(Succ(x2), Zero), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (1262) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1263) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero))))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero)))))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1))))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1))))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero))))), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x8)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x8))))), Pos(Succ(Succ(Succ(Zero))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13)))))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x14)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x14), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x14)))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero))))=x20 & Pos(Zero)=x21 & new_primEqInt(x20, x21)=False ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x20, x21)=False which results in the following new constraint: (3) (False=False & Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero))))=Neg(Succ(x23)) & Pos(Zero)=Pos(x22) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))) We simplified constraint (3) using rules (I), (II), (IV), (VII) which results in the following new constraint: (4) (Succ(x13)=x24 & Succ(Succ(Zero))=x25 & new_primModNatS1(x24, x25)=Succ(x23) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x24, x25)=Succ(x23) which results in the following new constraints: (5) (Succ(Zero)=Succ(x23) & Succ(x13)=Succ(Zero) & Succ(Succ(Zero))=Succ(x26) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))) (6) (new_primModNatS02(x28, x27, x28, x27)=Succ(x23) & Succ(x13)=Succ(Succ(x28)) & Succ(Succ(Zero))=Succ(x27) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x13))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x13), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x13))))))) We simplified constraint (5) using rules (I), (II), (III), (IV) which results in the following new constraint: (7) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (8) (x28=x30 & x27=x31 & new_primModNatS02(x28, x27, x30, x31)=Succ(x23) & Succ(Zero)=x27 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x28)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x28)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x28)))))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x28, x27, x30, x31)=Succ(x23) which results in the following new constraints: (9) (new_primModNatS01(x34, x33)=Succ(x23) & x34=Succ(x32) & x33=Zero & Succ(Zero)=x33 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x34)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x34)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x34)))))))) (10) (new_primModNatS02(x38, x37, x36, x35)=Succ(x23) & x38=Succ(x36) & x37=Succ(x35) & Succ(Zero)=x37 & (\/x39:new_primModNatS02(x38, x37, x36, x35)=Succ(x39) & x38=x36 & x37=x35 & Succ(Zero)=x37 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x38)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x38)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x38)))))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x38)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x38)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x38)))))))) (11) (new_primModNatS01(x41, x40)=Succ(x23) & x41=Zero & x40=Zero & Succ(Zero)=x40 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x41)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x41)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x41)))))))) (12) (Succ(Succ(x44))=Succ(x23) & x44=Zero & x43=Succ(x42) & Succ(Zero)=x43 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x44)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x44)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x44)))))))) We solved constraint (9) using rules (I), (II), (III).We simplified constraint (10) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (13) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x36))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))))) We solved constraint (11) using rules (I), (II), (III).We simplified constraint (12) using rules (I), (II), (III), (IV) which results in the following new constraint: (14) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x15)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x15), Succ(Succ(Zero))))), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x16)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x16))))), Pos(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x15), Succ(Succ(Zero)))))=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x16)))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x15), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: (2) (Succ(x15)=x47 & Succ(Succ(Zero))=x48 & new_primModNatS1(x47, x48)=Succ(Succ(Succ(Succ(x16)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x15), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x47, x48)=Succ(Succ(Succ(Succ(x16)))) which results in the following new constraints: (3) (Succ(Zero)=Succ(Succ(Succ(Succ(x16)))) & Succ(x15)=Succ(Zero) & Succ(Succ(Zero))=Succ(x49) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x15), Succ(Succ(Zero)))))) (4) (new_primModNatS02(x51, x50, x51, x50)=Succ(Succ(Succ(Succ(x16)))) & Succ(x15)=Succ(Succ(x51)) & Succ(Succ(Zero))=Succ(x50) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x15), Succ(Succ(Zero)))))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (III), (VII) which results in the following new constraint: (5) (x51=x53 & x50=x54 & new_primModNatS02(x51, x50, x53, x54)=Succ(Succ(Succ(Succ(x16)))) & Succ(Zero)=x50 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x51)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x51)), Succ(Succ(Zero)))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x51, x50, x53, x54)=Succ(Succ(Succ(Succ(x16)))) which results in the following new constraints: (6) (new_primModNatS01(x57, x56)=Succ(Succ(Succ(Succ(x16)))) & x57=Succ(x55) & x56=Zero & Succ(Zero)=x56 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x57)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x57)), Succ(Succ(Zero)))))) (7) (new_primModNatS02(x61, x60, x59, x58)=Succ(Succ(Succ(Succ(x16)))) & x61=Succ(x59) & x60=Succ(x58) & Succ(Zero)=x60 & (\/x62:new_primModNatS02(x61, x60, x59, x58)=Succ(Succ(Succ(Succ(x62)))) & x61=x59 & x60=x58 & Succ(Zero)=x60 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x61)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x61)), Succ(Succ(Zero)))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x61)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x61)), Succ(Succ(Zero)))))) (8) (new_primModNatS01(x64, x63)=Succ(Succ(Succ(Succ(x16)))) & x64=Zero & x63=Zero & Succ(Zero)=x63 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x64)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x64)), Succ(Succ(Zero)))))) (9) (Succ(Succ(x67))=Succ(Succ(Succ(Succ(x16)))) & x67=Zero & x66=Succ(x65) & Succ(Zero)=x66 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(x67)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x67)), Succ(Succ(Zero)))))) We solved constraint (6) using rules (I), (II), (III).We simplified constraint (7) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x59))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x59))), Succ(Succ(Zero)))))) We solved constraint (8) using rules (I), (II), (III).We solved constraint (9) using rules (I), (II), (III), (IV). To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x1))))))_>=_new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x1))))), Pos(Succ(Succ(Succ(Zero)))))) *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x7))))), Pos(Succ(Succ(Succ(Zero)))))) *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x36))), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x36))))))))) *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x59))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x59))), Succ(Succ(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. ---------------------------------------- (1264) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1265) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1266) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (1267) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1268) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(False) = 0 POL(Neg(x_1)) = 2 POL(Pos(x_1)) = 2*x_1 POL(Succ(x_1)) = 1 + x_1 POL(True) = 3 POL(Zero) = 0 POL(new_gcd0Gcd'0(x_1, x_2)) = x_1 + x_2 POL(new_gcd0Gcd'1(x_1, x_2, x_3)) = x_2 + x_3 POL(new_primEqInt(x_1, x_2)) = 0 POL(new_primMinusNatS0(x_1, x_2)) = x_1 POL(new_primModNatS01(x_1, x_2)) = 1 + x_1 POL(new_primModNatS02(x_1, x_2, x_3, x_4)) = 2 + x_1 POL(new_primModNatS1(x_1, x_2)) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) ---------------------------------------- (1269) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))), Pos(Zero)), Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1270) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes. ---------------------------------------- (1271) TRUE ---------------------------------------- (1272) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1273) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2))), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x4))))), Neg(Succ(Succ(Succ(Succ(x5)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x4)), Succ(Succ(x5)), x4, x5)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x5))))), Pos(Succ(Succ(Succ(Succ(x4)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x4))))), Neg(Succ(Succ(Succ(Succ(x5)))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(Succ(x3))=x40 & Succ(Succ(x2))=x41 & new_primModNatS02(x40, x41, x3, x2)=Succ(Succ(Succ(Succ(x5)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(new_primModNatS02(Succ(Succ(x3)), Succ(Succ(x2)), x3, x2)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x40, x41, x3, x2)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraints: (3) (new_primModNatS01(x44, x43)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x42)))=x44 & Succ(Succ(Zero))=x43 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x42)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x42))), Succ(Succ(Zero)), Succ(x42), Zero)))) (4) (new_primModNatS02(x48, x47, x46, x45)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x46)))=x48 & Succ(Succ(Succ(x45)))=x47 & (\/x49:new_primModNatS02(x48, x47, x46, x45)=Succ(Succ(Succ(Succ(x49)))) & Succ(Succ(x46))=x48 & Succ(Succ(x45))=x47 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x45))))), Neg(Succ(Succ(Succ(Succ(x46))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x45))))), Neg(new_primModNatS02(Succ(Succ(x46)), Succ(Succ(x45)), x46, x45)))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x45)))))), Neg(Succ(Succ(Succ(Succ(Succ(x46)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x45)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x46))), Succ(Succ(Succ(x45))), Succ(x46), Succ(x45))))) (5) (new_primModNatS01(x51, x50)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x51 & Succ(Succ(Zero))=x50 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (6) (Succ(Succ(x54))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x54 & Succ(Succ(Succ(x52)))=x53 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x52)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x52)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x52))), Zero, Succ(x52))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x44, x43)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS0(Succ(x56), Succ(x55)), Succ(x55))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x42)))=x56 & Succ(Succ(Zero))=x55 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x42)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x42))), Succ(Succ(Zero)), Succ(x42), Zero)))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS02(x48, x47, x46, x45)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(x46)))=x48 & Succ(Succ(Succ(x45)))=x47 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x45)))))), Neg(Succ(Succ(Succ(Succ(Succ(x46)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x45)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x46))), Succ(Succ(Succ(x45))), Succ(x46), Succ(x45))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x51, x50)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS0(Succ(x75), Succ(x74)), Succ(x74))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Zero))=x75 & Succ(Succ(Zero))=x74 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x52)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x52)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x52))), Zero, Succ(x52))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x42)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x42))), Succ(Succ(Zero)), Succ(x42), Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x48, x47, x46, x45)=Succ(Succ(Succ(Succ(x5)))) which results in the following new constraints: (12) (new_primModNatS01(x63, x62)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Succ(x61))))=x63 & Succ(Succ(Succ(Zero)))=x62 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x61))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x61)))), Succ(Succ(Succ(Zero))), Succ(Succ(x61)), Succ(Zero))))) (13) (new_primModNatS02(x67, x66, x65, x64)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Succ(x65))))=x67 & Succ(Succ(Succ(Succ(x64))))=x66 & (\/x68:new_primModNatS02(x67, x66, x65, x64)=Succ(Succ(Succ(Succ(x68)))) & Succ(Succ(Succ(x65)))=x67 & Succ(Succ(Succ(x64)))=x66 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x64)))))), Neg(Succ(Succ(Succ(Succ(Succ(x65)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x64)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x65))), Succ(Succ(Succ(x64))), Succ(x65), Succ(x64))))) ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x64))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x65))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x64))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x65)))), Succ(Succ(Succ(Succ(x64)))), Succ(Succ(x65)), Succ(Succ(x64)))))) (14) (new_primModNatS01(x70, x69)=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Zero)))=x70 & Succ(Succ(Succ(Zero)))=x69 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (15) (Succ(Succ(x73))=Succ(Succ(Succ(Succ(x5)))) & Succ(Succ(Succ(Zero)))=x73 & Succ(Succ(Succ(Succ(x71))))=x72 ==> new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x71))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x71))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x71)))), Succ(Zero), Succ(Succ(x71)))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x61))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x61)))), Succ(Succ(Succ(Zero))), Succ(Succ(x61)), Succ(Zero))))) We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: (17) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x64))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x65))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x64))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x65)))), Succ(Succ(Succ(Succ(x64)))), Succ(Succ(x65)), Succ(Succ(x64)))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x71))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x71))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x71)))), Succ(Zero), Succ(Succ(x71)))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x14))))), Neg(Succ(Succ(Succ(Succ(x15)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14)))))), new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x16))))), Pos(Succ(Succ(Succ(Succ(x17)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x16))))), Pos(new_primModNatS02(Succ(Succ(x17)), Succ(Succ(x16)), x17, x16))) which results in the following constraint: (1) (new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14))))))=new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x16))))), Pos(Succ(Succ(Succ(Succ(x17)))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x14))))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15))=x80 & Pos(Zero)=x81 & new_primEqInt(x80, x81)=False ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x14))))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x80, x81)=False which results in the following new constraints: (3) (False=False & Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15))=Pos(Succ(x82)) & Pos(Zero)=Pos(Zero) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x14))))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14))))))) (4) (False=False & Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15))=Neg(Succ(x84)) & Pos(Zero)=Pos(x83) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x14))))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14))))))) We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: (5) (Succ(Succ(x14))=x85 & Succ(Succ(x15))=x86 & new_primModNatS02(x85, x86, x14, x15)=Succ(x82) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x14))))), Neg(Succ(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Succ(x15)), x14, x15)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x15))))), Pos(Succ(Succ(Succ(Succ(x14))))))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x85, x86, x14, x15)=Succ(x82) which results in the following new constraints: (6) (new_primModNatS01(x89, x88)=Succ(x82) & Succ(Succ(Succ(x87)))=x89 & Succ(Succ(Zero))=x88 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x87)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x87))), Succ(Succ(Zero)), Succ(x87), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x87)))))))) (7) (new_primModNatS02(x93, x92, x91, x90)=Succ(x82) & Succ(Succ(Succ(x91)))=x93 & Succ(Succ(Succ(x90)))=x92 & (\/x94:new_primModNatS02(x93, x92, x91, x90)=Succ(x94) & Succ(Succ(x91))=x93 & Succ(Succ(x90))=x92 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x91))))), Neg(Succ(Succ(Succ(Succ(x90))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x91)), Succ(Succ(x90)), x91, x90)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x90))))), Pos(Succ(Succ(Succ(Succ(x91))))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x91)))))), Neg(Succ(Succ(Succ(Succ(Succ(x90)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x91))), Succ(Succ(Succ(x90))), Succ(x91), Succ(x90))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x90)))))), Pos(Succ(Succ(Succ(Succ(Succ(x91)))))))) (8) (new_primModNatS01(x96, x95)=Succ(x82) & Succ(Succ(Zero))=x96 & Succ(Succ(Zero))=x95 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) (9) (Succ(Succ(x99))=Succ(x82) & Succ(Succ(Zero))=x99 & Succ(Succ(Succ(x97)))=x98 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x97)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x97))), Zero, Succ(x97))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x97)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x89, x88)=Succ(x82) which results in the following new constraint: (10) (new_primModNatS1(new_primMinusNatS0(Succ(x101), Succ(x100)), Succ(x100))=Succ(x82) & Succ(Succ(Succ(x87)))=x101 & Succ(Succ(Zero))=x100 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x87)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x87))), Succ(Succ(Zero)), Succ(x87), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x87)))))))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_primModNatS02(x93, x92, x91, x90)=Succ(x82) & Succ(Succ(Succ(x91)))=x93 & Succ(Succ(Succ(x90)))=x92 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x91)))))), Neg(Succ(Succ(Succ(Succ(Succ(x90)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x91))), Succ(Succ(Succ(x90))), Succ(x91), Succ(x90))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x90)))))), Pos(Succ(Succ(Succ(Succ(Succ(x91)))))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x96, x95)=Succ(x82) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS0(Succ(x120), Succ(x119)), Succ(x119))=Succ(x82) & Succ(Succ(Zero))=x120 & Succ(Succ(Zero))=x119 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: (13) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x97)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x97))), Zero, Succ(x97))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x97)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x87)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x87))), Succ(Succ(Zero)), Succ(x87), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x87)))))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x93, x92, x91, x90)=Succ(x82) which results in the following new constraints: (15) (new_primModNatS01(x108, x107)=Succ(x82) & Succ(Succ(Succ(Succ(x106))))=x108 & Succ(Succ(Succ(Zero)))=x107 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x106))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x106)))), Succ(Succ(Succ(Zero))), Succ(Succ(x106)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x106))))))))) (16) (new_primModNatS02(x112, x111, x110, x109)=Succ(x82) & Succ(Succ(Succ(Succ(x110))))=x112 & Succ(Succ(Succ(Succ(x109))))=x111 & (\/x113:new_primModNatS02(x112, x111, x110, x109)=Succ(x113) & Succ(Succ(Succ(x110)))=x112 & Succ(Succ(Succ(x109)))=x111 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x110)))))), Neg(Succ(Succ(Succ(Succ(Succ(x109)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x110))), Succ(Succ(Succ(x109))), Succ(x110), Succ(x109))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x109)))))), Pos(Succ(Succ(Succ(Succ(Succ(x110)))))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x110))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x109))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x110)))), Succ(Succ(Succ(Succ(x109)))), Succ(Succ(x110)), Succ(Succ(x109)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x109))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x110))))))))) (17) (new_primModNatS01(x115, x114)=Succ(x82) & Succ(Succ(Succ(Zero)))=x115 & Succ(Succ(Succ(Zero)))=x114 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) (18) (Succ(Succ(x118))=Succ(x82) & Succ(Succ(Succ(Zero)))=x118 & Succ(Succ(Succ(Succ(x116))))=x117 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x116))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x116)))), Succ(Zero), Succ(Succ(x116)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x116))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x106))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x106)))), Succ(Succ(Succ(Zero))), Succ(Succ(x106)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x106))))))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x110))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x109))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x110)))), Succ(Succ(Succ(Succ(x109)))), Succ(Succ(x110)), Succ(Succ(x109)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x109))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x110))))))))) We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: (21) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: (22) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x116))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x116)))), Succ(Zero), Succ(Succ(x116)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x116))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (23) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) For Pair new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x26))))), Pos(Succ(Succ(Succ(Succ(x27)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x26))))), Pos(new_primModNatS02(Succ(Succ(x27)), Succ(Succ(x26)), x27, x26))), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x28))))), Pos(Succ(Succ(Succ(Succ(x29)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x28)), Succ(Succ(x29)), x28, x29)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x29))))), Neg(Succ(Succ(Succ(Succ(x28)))))) which results in the following constraint: (1) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x26))))), Pos(new_primModNatS02(Succ(Succ(x27)), Succ(Succ(x26)), x27, x26)))=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x28))))), Pos(Succ(Succ(Succ(Succ(x29)))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x26))))), Pos(Succ(Succ(Succ(Succ(x27))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x26))))), Pos(new_primModNatS02(Succ(Succ(x27)), Succ(Succ(x26)), x27, x26)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(Succ(x27))=x125 & Succ(Succ(x26))=x126 & new_primModNatS02(x125, x126, x27, x26)=Succ(Succ(Succ(Succ(x29)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x26))))), Pos(Succ(Succ(Succ(Succ(x27))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x26))))), Pos(new_primModNatS02(Succ(Succ(x27)), Succ(Succ(x26)), x27, x26)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x125, x126, x27, x26)=Succ(Succ(Succ(Succ(x29)))) which results in the following new constraints: (3) (new_primModNatS01(x129, x128)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(x127)))=x129 & Succ(Succ(Zero))=x128 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x127)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x127))), Succ(Succ(Zero)), Succ(x127), Zero)))) (4) (new_primModNatS02(x133, x132, x131, x130)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(x131)))=x133 & Succ(Succ(Succ(x130)))=x132 & (\/x134:new_primModNatS02(x133, x132, x131, x130)=Succ(Succ(Succ(Succ(x134)))) & Succ(Succ(x131))=x133 & Succ(Succ(x130))=x132 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x130))))), Pos(Succ(Succ(Succ(Succ(x131))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x130))))), Pos(new_primModNatS02(Succ(Succ(x131)), Succ(Succ(x130)), x131, x130)))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x130)))))), Pos(Succ(Succ(Succ(Succ(Succ(x131)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x130)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x131))), Succ(Succ(Succ(x130))), Succ(x131), Succ(x130))))) (5) (new_primModNatS01(x136, x135)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Zero))=x136 & Succ(Succ(Zero))=x135 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (6) (Succ(Succ(x139))=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Zero))=x139 & Succ(Succ(Succ(x137)))=x138 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x137)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x137)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x137))), Zero, Succ(x137))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x129, x128)=Succ(Succ(Succ(Succ(x29)))) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS0(Succ(x141), Succ(x140)), Succ(x140))=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(x127)))=x141 & Succ(Succ(Zero))=x140 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x127)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x127))), Succ(Succ(Zero)), Succ(x127), Zero)))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS02(x133, x132, x131, x130)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(x131)))=x133 & Succ(Succ(Succ(x130)))=x132 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x130)))))), Pos(Succ(Succ(Succ(Succ(Succ(x131)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x130)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x131))), Succ(Succ(Succ(x130))), Succ(x131), Succ(x130))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x136, x135)=Succ(Succ(Succ(Succ(x29)))) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS0(Succ(x160), Succ(x159)), Succ(x159))=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Zero))=x160 & Succ(Succ(Zero))=x159 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x137)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x137)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x137))), Zero, Succ(x137))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x127)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x127))), Succ(Succ(Zero)), Succ(x127), Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x133, x132, x131, x130)=Succ(Succ(Succ(Succ(x29)))) which results in the following new constraints: (12) (new_primModNatS01(x148, x147)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(Succ(x146))))=x148 & Succ(Succ(Succ(Zero)))=x147 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x146))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x146)))), Succ(Succ(Succ(Zero))), Succ(Succ(x146)), Succ(Zero))))) (13) (new_primModNatS02(x152, x151, x150, x149)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(Succ(x150))))=x152 & Succ(Succ(Succ(Succ(x149))))=x151 & (\/x153:new_primModNatS02(x152, x151, x150, x149)=Succ(Succ(Succ(Succ(x153)))) & Succ(Succ(Succ(x150)))=x152 & Succ(Succ(Succ(x149)))=x151 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x149)))))), Pos(Succ(Succ(Succ(Succ(Succ(x150)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x149)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x150))), Succ(Succ(Succ(x149))), Succ(x150), Succ(x149))))) ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x149))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x150))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x149))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x150)))), Succ(Succ(Succ(Succ(x149)))), Succ(Succ(x150)), Succ(Succ(x149)))))) (14) (new_primModNatS01(x155, x154)=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(Zero)))=x155 & Succ(Succ(Succ(Zero)))=x154 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (15) (Succ(Succ(x158))=Succ(Succ(Succ(Succ(x29)))) & Succ(Succ(Succ(Zero)))=x158 & Succ(Succ(Succ(Succ(x156))))=x157 ==> new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x156))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x156))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x156)))), Succ(Zero), Succ(Succ(x156)))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x146))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x146)))), Succ(Succ(Succ(Zero))), Succ(Succ(x146)), Succ(Zero))))) We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: (17) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x149))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x150))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x149))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x150)))), Succ(Succ(Succ(Succ(x149)))), Succ(Succ(x150)), Succ(Succ(x149)))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) We simplified constraint (15) using rules (I), (II), (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x156))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x156))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x156)))), Succ(Zero), Succ(Succ(x156)))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x30))))), Pos(Succ(Succ(Succ(Succ(x31)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30)))))), new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x32))))), Neg(Succ(Succ(Succ(Succ(x33)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x32))))), Neg(new_primModNatS02(Succ(Succ(x33)), Succ(Succ(x32)), x33, x32))) which results in the following constraint: (1) (new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30))))))=new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x32))))), Neg(Succ(Succ(Succ(Succ(x33)))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x30))))), Pos(Succ(Succ(Succ(Succ(x31))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31))=x165 & Pos(Zero)=x166 & new_primEqInt(x165, x166)=False ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x30))))), Pos(Succ(Succ(Succ(Succ(x31))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x165, x166)=False which results in the following new constraints: (3) (False=False & Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31))=Pos(Succ(x167)) & Pos(Zero)=Pos(Zero) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x30))))), Pos(Succ(Succ(Succ(Succ(x31))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30))))))) (4) (False=False & Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31))=Neg(Succ(x169)) & Pos(Zero)=Pos(x168) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x30))))), Pos(Succ(Succ(Succ(Succ(x31))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30))))))) We solved constraint (3) using rules (I), (II).We simplified constraint (4) using rules (I), (II), (IV), (VII) which results in the following new constraint: (5) (Succ(Succ(x30))=x170 & Succ(Succ(x31))=x171 & new_primModNatS02(x170, x171, x30, x31)=Succ(x169) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x30))))), Pos(Succ(Succ(Succ(Succ(x31))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x30)), Succ(Succ(x31)), x30, x31)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x31))))), Neg(Succ(Succ(Succ(Succ(x30))))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x170, x171, x30, x31)=Succ(x169) which results in the following new constraints: (6) (new_primModNatS01(x174, x173)=Succ(x169) & Succ(Succ(Succ(x172)))=x174 & Succ(Succ(Zero))=x173 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x172)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x172))), Succ(Succ(Zero)), Succ(x172), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x172)))))))) (7) (new_primModNatS02(x178, x177, x176, x175)=Succ(x169) & Succ(Succ(Succ(x176)))=x178 & Succ(Succ(Succ(x175)))=x177 & (\/x179:new_primModNatS02(x178, x177, x176, x175)=Succ(x179) & Succ(Succ(x176))=x178 & Succ(Succ(x175))=x177 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x176))))), Pos(Succ(Succ(Succ(Succ(x175))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x176)), Succ(Succ(x175)), x176, x175)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x175))))), Neg(Succ(Succ(Succ(Succ(x176))))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x176)))))), Pos(Succ(Succ(Succ(Succ(Succ(x175)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x176))), Succ(Succ(Succ(x175))), Succ(x176), Succ(x175))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x175)))))), Neg(Succ(Succ(Succ(Succ(Succ(x176)))))))) (8) (new_primModNatS01(x181, x180)=Succ(x169) & Succ(Succ(Zero))=x181 & Succ(Succ(Zero))=x180 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) (9) (Succ(Succ(x184))=Succ(x169) & Succ(Succ(Zero))=x184 & Succ(Succ(Succ(x182)))=x183 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x182)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x182))), Zero, Succ(x182))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x182)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x174, x173)=Succ(x169) which results in the following new constraint: (10) (new_primModNatS1(new_primMinusNatS0(Succ(x186), Succ(x185)), Succ(x185))=Succ(x169) & Succ(Succ(Succ(x172)))=x186 & Succ(Succ(Zero))=x185 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x172)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x172))), Succ(Succ(Zero)), Succ(x172), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x172)))))))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_primModNatS02(x178, x177, x176, x175)=Succ(x169) & Succ(Succ(Succ(x176)))=x178 & Succ(Succ(Succ(x175)))=x177 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x176)))))), Pos(Succ(Succ(Succ(Succ(Succ(x175)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x176))), Succ(Succ(Succ(x175))), Succ(x176), Succ(x175))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x175)))))), Neg(Succ(Succ(Succ(Succ(Succ(x176)))))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x181, x180)=Succ(x169) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS0(Succ(x205), Succ(x204)), Succ(x204))=Succ(x169) & Succ(Succ(Zero))=x205 & Succ(Succ(Zero))=x204 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: (13) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x182)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x182))), Zero, Succ(x182))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x182)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x172)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x172))), Succ(Succ(Zero)), Succ(x172), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x172)))))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x178, x177, x176, x175)=Succ(x169) which results in the following new constraints: (15) (new_primModNatS01(x193, x192)=Succ(x169) & Succ(Succ(Succ(Succ(x191))))=x193 & Succ(Succ(Succ(Zero)))=x192 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x191))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x191)))), Succ(Succ(Succ(Zero))), Succ(Succ(x191)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x191))))))))) (16) (new_primModNatS02(x197, x196, x195, x194)=Succ(x169) & Succ(Succ(Succ(Succ(x195))))=x197 & Succ(Succ(Succ(Succ(x194))))=x196 & (\/x198:new_primModNatS02(x197, x196, x195, x194)=Succ(x198) & Succ(Succ(Succ(x195)))=x197 & Succ(Succ(Succ(x194)))=x196 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x195)))))), Pos(Succ(Succ(Succ(Succ(Succ(x194)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x195))), Succ(Succ(Succ(x194))), Succ(x195), Succ(x194))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x194)))))), Neg(Succ(Succ(Succ(Succ(Succ(x195)))))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x195))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x194))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x195)))), Succ(Succ(Succ(Succ(x194)))), Succ(Succ(x195)), Succ(Succ(x194)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x194))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x195))))))))) (17) (new_primModNatS01(x200, x199)=Succ(x169) & Succ(Succ(Succ(Zero)))=x200 & Succ(Succ(Succ(Zero)))=x199 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) (18) (Succ(Succ(x203))=Succ(x169) & Succ(Succ(Succ(Zero)))=x203 & Succ(Succ(Succ(Succ(x201))))=x202 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x201))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x201)))), Succ(Zero), Succ(Succ(x201)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x201))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x191))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x191)))), Succ(Succ(Succ(Zero))), Succ(Succ(x191)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x191))))))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x195))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x194))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x195)))), Succ(Succ(Succ(Succ(x194)))), Succ(Succ(x195)), Succ(Succ(x194)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x194))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x195))))))))) We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: (21) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: (22) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x201))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x201)))), Succ(Zero), Succ(Succ(x201)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x201))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (23) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x71))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x71))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x71)))), Succ(Zero), Succ(Succ(x71)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(x52)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x52)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x52))), Zero, Succ(x52))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x42)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x42))), Succ(Succ(Zero)), Succ(x42), Zero)))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x61))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x61)))), Succ(Succ(Succ(Zero))), Succ(Succ(x61)), Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Succ(x64))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x65))))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x64))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x65)))), Succ(Succ(Succ(Succ(x64)))), Succ(Succ(x65)), Succ(Succ(x64)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x116))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x116)))), Succ(Zero), Succ(Succ(x116)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x116))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x97)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x97))), Zero, Succ(x97))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(x97)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x87)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x87))), Succ(Succ(Zero)), Succ(x87), Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x87)))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x106))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x106)))), Succ(Succ(Succ(Zero))), Succ(Succ(x106)), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x106))))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x110))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x109))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x110)))), Succ(Succ(Succ(Succ(x109)))), Succ(Succ(x110)), Succ(Succ(x109)))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x109))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x110))))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))) *new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x156))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x156))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x156)))), Succ(Zero), Succ(Succ(x156)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(x137)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x137)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x137))), Zero, Succ(x137))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x127)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x127))), Succ(Succ(Zero)), Succ(x127), Zero)))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x146))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x146)))), Succ(Succ(Succ(Zero))), Succ(Succ(x146)), Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Succ(x149))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x150))))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x149))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x150)))), Succ(Succ(Succ(Succ(x149)))), Succ(Succ(x150)), Succ(Succ(x149)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x201))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x201)))), Succ(Zero), Succ(Succ(x201)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x201))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x182)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x182))), Zero, Succ(x182))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(x182)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x172)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x172))), Succ(Succ(Zero)), Succ(x172), Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x172)))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x191))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x191)))), Succ(Succ(Succ(Zero))), Succ(Succ(x191)), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x191))))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x195))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x194))))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x195)))), Succ(Succ(Succ(Succ(x194)))), Succ(Succ(x195)), Succ(Succ(x194)))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x194))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x195))))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(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. ---------------------------------------- (1274) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x3))))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'1(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)), Pos(Zero)), Pos(Succ(Succ(Succ(Succ(x3))))), Neg(Succ(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz68000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz69000)), Succ(vuz68000)) -> new_primModNatS02(vuz69000, vuz68000, vuz69000, vuz68000) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS01(vuz158, vuz159) -> new_primModNatS1(new_primMinusNatS0(Succ(vuz158), Succ(vuz159)), Succ(vuz159)) new_primModNatS02(vuz158, vuz159, Succ(vuz1600), Succ(vuz1610)) -> new_primModNatS02(vuz158, vuz159, vuz1600, vuz1610) new_primModNatS02(vuz158, vuz159, Zero, Zero) -> new_primModNatS01(vuz158, vuz159) new_primModNatS02(vuz158, vuz159, Zero, Succ(vuz1610)) -> Succ(Succ(vuz158)) new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primModNatS1(Zero, vuz6800) -> Zero new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) new_primEqInt(Pos(Zero), Pos(Zero)) -> True new_primEqInt(Pos(Succ(vuz2700)), Pos(Zero)) -> False new_primEqInt(Neg(Succ(vuz2700)), Pos(vuz260)) -> False new_primEqInt(Neg(Zero), Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primEqInt(Pos(Zero), Neg(Zero)) new_primEqInt(Neg(Zero), Pos(Zero)) new_primEqInt(Pos(Succ(x0)), Pos(Succ(x1))) new_primEqInt(Pos(Zero), Pos(Zero)) new_primModNatS1(Zero, x0) new_primEqInt(Pos(Succ(x0)), Pos(Zero)) new_primEqInt(Pos(Zero), Neg(Succ(x0))) new_primEqInt(Neg(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(Zero, Succ(x0)) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Succ(x0)), Neg(Zero)) new_primMinusNatS0(Succ(x0), Zero) new_primEqInt(Neg(Succ(x0)), Neg(Succ(x1))) new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primEqInt(Neg(Zero), Neg(Zero)) new_primEqInt(Pos(Zero), Pos(Succ(x0))) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Succ(x0)), Neg(x1)) new_primEqInt(Neg(Succ(x0)), Pos(x1)) new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Zero), Neg(Succ(x0))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1275) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS(Succ(Succ(vuz29000)), Succ(vuz56000)) -> new_primDivNatS0(vuz29000, vuz56000, vuz29000, vuz56000) new_primDivNatS0(vuz97, vuz98, Zero, Zero) -> new_primDivNatS00(vuz97, vuz98) new_primDivNatS0(vuz97, vuz98, Succ(vuz990), Zero) -> new_primDivNatS(new_primMinusNatS0(Succ(vuz97), Succ(vuz98)), Succ(vuz98)) new_primDivNatS0(vuz97, vuz98, Succ(vuz990), Succ(vuz1000)) -> new_primDivNatS0(vuz97, vuz98, vuz990, vuz1000) new_primDivNatS(Succ(Zero), Zero) -> new_primDivNatS(new_primMinusNatS2, Zero) new_primDivNatS(Succ(Succ(vuz29000)), Zero) -> new_primDivNatS(new_primMinusNatS1(vuz29000), Zero) new_primDivNatS00(vuz97, vuz98) -> new_primDivNatS(new_primMinusNatS0(Succ(vuz97), Succ(vuz98)), Succ(vuz98)) The TRS R consists of the following rules: new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS1(vuz29000) -> Succ(vuz29000) new_primMinusNatS2 -> Zero new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primMinusNatS2 new_primMinusNatS1(x0) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1276) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (1277) Complex Obligation (AND) ---------------------------------------- (1278) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS(Succ(Succ(vuz29000)), Zero) -> new_primDivNatS(new_primMinusNatS1(vuz29000), Zero) The TRS R consists of the following rules: new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS1(vuz29000) -> Succ(vuz29000) new_primMinusNatS2 -> Zero new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primMinusNatS2 new_primMinusNatS1(x0) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1279) 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(Succ(Succ(vuz29000)), Zero) -> new_primDivNatS(new_primMinusNatS1(vuz29000), Zero) Strictly oriented rules of the TRS R: new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS1(vuz29000) -> Succ(vuz29000) new_primMinusNatS2 -> Zero new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) Used ordering: Polynomial interpretation [POLO]: POL(Succ(x_1)) = 1 + 2*x_1 POL(Zero) = 1 POL(new_primDivNatS(x_1, x_2)) = x_1 + x_2 POL(new_primMinusNatS0(x_1, x_2)) = x_1 + x_2 POL(new_primMinusNatS1(x_1)) = 2 + 2*x_1 POL(new_primMinusNatS2) = 2 ---------------------------------------- (1280) Obligation: Q DP problem: P is empty. R is empty. The set Q consists of the following terms: new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primMinusNatS2 new_primMinusNatS1(x0) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1281) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (1282) YES ---------------------------------------- (1283) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS0(vuz97, vuz98, Zero, Zero) -> new_primDivNatS00(vuz97, vuz98) new_primDivNatS00(vuz97, vuz98) -> new_primDivNatS(new_primMinusNatS0(Succ(vuz97), Succ(vuz98)), Succ(vuz98)) new_primDivNatS(Succ(Succ(vuz29000)), Succ(vuz56000)) -> new_primDivNatS0(vuz29000, vuz56000, vuz29000, vuz56000) new_primDivNatS0(vuz97, vuz98, Succ(vuz990), Zero) -> new_primDivNatS(new_primMinusNatS0(Succ(vuz97), Succ(vuz98)), Succ(vuz98)) new_primDivNatS0(vuz97, vuz98, Succ(vuz990), Succ(vuz1000)) -> new_primDivNatS0(vuz97, vuz98, vuz990, vuz1000) The TRS R consists of the following rules: new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS1(vuz29000) -> Succ(vuz29000) new_primMinusNatS2 -> Zero new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primMinusNatS2 new_primMinusNatS1(x0) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1284) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_primDivNatS(Succ(Succ(vuz29000)), Succ(vuz56000)) -> new_primDivNatS0(vuz29000, vuz56000, vuz29000, vuz56000) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(Succ(x_1)) = 1 + x_1 POL(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(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) ---------------------------------------- (1285) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS0(vuz97, vuz98, Zero, Zero) -> new_primDivNatS00(vuz97, vuz98) new_primDivNatS00(vuz97, vuz98) -> new_primDivNatS(new_primMinusNatS0(Succ(vuz97), Succ(vuz98)), Succ(vuz98)) new_primDivNatS0(vuz97, vuz98, Succ(vuz990), Zero) -> new_primDivNatS(new_primMinusNatS0(Succ(vuz97), Succ(vuz98)), Succ(vuz98)) new_primDivNatS0(vuz97, vuz98, Succ(vuz990), Succ(vuz1000)) -> new_primDivNatS0(vuz97, vuz98, vuz990, vuz1000) The TRS R consists of the following rules: new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS1(vuz29000) -> Succ(vuz29000) new_primMinusNatS2 -> Zero new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primMinusNatS2 new_primMinusNatS1(x0) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1286) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. ---------------------------------------- (1287) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS0(vuz97, vuz98, Succ(vuz990), Succ(vuz1000)) -> new_primDivNatS0(vuz97, vuz98, vuz990, vuz1000) The TRS R consists of the following rules: new_primMinusNatS0(Zero, Succ(vuz890)) -> Zero new_primMinusNatS0(Zero, Zero) -> Zero new_primMinusNatS1(vuz29000) -> Succ(vuz29000) new_primMinusNatS2 -> Zero new_primMinusNatS0(Succ(vuz880), Succ(vuz890)) -> new_primMinusNatS0(vuz880, vuz890) new_primMinusNatS0(Succ(vuz880), Zero) -> Succ(vuz880) The set Q consists of the following terms: new_primMinusNatS0(Succ(x0), Succ(x1)) new_primMinusNatS0(Zero, Zero) new_primMinusNatS2 new_primMinusNatS1(x0) new_primMinusNatS0(Succ(x0), Zero) new_primMinusNatS0(Zero, Succ(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1288) 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(vuz97, vuz98, Succ(vuz990), Succ(vuz1000)) -> new_primDivNatS0(vuz97, vuz98, vuz990, vuz1000) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 ---------------------------------------- (1289) YES ---------------------------------------- (1290) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot(vuz182, vuz183, Succ(vuz1840), Succ(vuz1850)) -> new_quot(vuz182, vuz183, vuz1840, vuz1850) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1291) 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_quot(vuz182, vuz183, Succ(vuz1840), Succ(vuz1850)) -> new_quot(vuz182, vuz183, vuz1840, vuz1850) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 ---------------------------------------- (1292) YES ---------------------------------------- (1293) Obligation: Q DP problem: The TRS P consists of the following rules: new_quot6(vuz141, vuz142, Succ(vuz1430), Succ(vuz1440), vuz145, vuz146) -> new_quot6(vuz141, vuz142, vuz1430, vuz1440, vuz145, vuz146) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1294) 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_quot6(vuz141, vuz142, Succ(vuz1430), Succ(vuz1440), vuz145, vuz146) -> new_quot6(vuz141, vuz142, vuz1430, vuz1440, vuz145, vuz146) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4, 5 >= 5, 6 >= 6 ---------------------------------------- (1295) YES ---------------------------------------- (1296) Obligation: Q DP problem: The TRS P consists of the following rules: new_primEqNat(Succ(vuz27000), Succ(vuz26000)) -> new_primEqNat(vuz27000, vuz26000) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (1297) 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_primEqNat(Succ(vuz27000), Succ(vuz26000)) -> new_primEqNat(vuz27000, vuz26000) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (1298) YES ---------------------------------------- (1299) Narrow (COMPLETE) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="sum",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="sum vuz3",fontsize=16,color="black",shape="triangle"];3 -> 4[label="",style="solid", color="black", weight=3]; 4[label="foldl' (+) (fromInt (Pos Zero)) vuz3",fontsize=16,color="burlywood",shape="box"];3378[label="vuz3/vuz30 : vuz31",fontsize=10,color="white",style="solid",shape="box"];4 -> 3378[label="",style="solid", color="burlywood", weight=9]; 3378 -> 5[label="",style="solid", color="burlywood", weight=3]; 3379[label="vuz3/[]",fontsize=10,color="white",style="solid",shape="box"];4 -> 3379[label="",style="solid", color="burlywood", weight=9]; 3379 -> 6[label="",style="solid", color="burlywood", weight=3]; 5[label="foldl' (+) (fromInt (Pos Zero)) (vuz30 : vuz31)",fontsize=16,color="black",shape="box"];5 -> 7[label="",style="solid", color="black", weight=3]; 6[label="foldl' (+) (fromInt (Pos Zero)) []",fontsize=16,color="black",shape="box"];6 -> 8[label="",style="solid", color="black", weight=3]; 7[label="(foldl' (+) $! (+) fromInt (Pos Zero) vuz30)",fontsize=16,color="black",shape="box"];7 -> 9[label="",style="solid", color="black", weight=3]; 8[label="fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];3380[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];8 -> 3380[label="",style="solid", color="blue", weight=9]; 3380 -> 10[label="",style="solid", color="blue", weight=3]; 3381[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];8 -> 3381[label="",style="solid", color="blue", weight=9]; 3381 -> 11[label="",style="solid", color="blue", weight=3]; 3382[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];8 -> 3382[label="",style="solid", color="blue", weight=9]; 3382 -> 12[label="",style="solid", color="blue", weight=3]; 3383[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];8 -> 3383[label="",style="solid", color="blue", weight=9]; 3383 -> 13[label="",style="solid", color="blue", weight=3]; 3384[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];8 -> 3384[label="",style="solid", color="blue", weight=9]; 3384 -> 14[label="",style="solid", color="blue", weight=3]; 9[label="((+) fromInt (Pos Zero) vuz30 `seq` foldl' (+) ((+) fromInt (Pos Zero) vuz30))",fontsize=16,color="black",shape="box"];9 -> 15[label="",style="solid", color="black", weight=3]; 10[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];10 -> 16[label="",style="solid", color="black", weight=3]; 11[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];11 -> 17[label="",style="solid", color="black", weight=3]; 12[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];12 -> 18[label="",style="solid", color="black", weight=3]; 13[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];13 -> 19[label="",style="solid", color="black", weight=3]; 14[label="fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];14 -> 20[label="",style="solid", color="black", weight=3]; 15 -> 21[label="",style="dashed", color="red", weight=0]; 15[label="enforceWHNF (WHNF ((+) fromInt (Pos Zero) vuz30)) (foldl' (+) ((+) fromInt (Pos Zero) vuz30)) vuz31",fontsize=16,color="magenta"];15 -> 22[label="",style="dashed", color="magenta", weight=3]; 15 -> 23[label="",style="dashed", color="magenta", weight=3]; 16[label="primIntToFloat (Pos Zero)",fontsize=16,color="black",shape="box"];16 -> 24[label="",style="solid", color="black", weight=3]; 17[label="primIntToDouble (Pos Zero)",fontsize=16,color="black",shape="box"];17 -> 25[label="",style="solid", color="black", weight=3]; 18[label="Integer (Pos Zero)",fontsize=16,color="green",shape="box"];19[label="Pos Zero",fontsize=16,color="green",shape="box"];20[label="intToRatio (Pos Zero)",fontsize=16,color="black",shape="box"];20 -> 26[label="",style="solid", color="black", weight=3]; 22[label="(+) fromInt (Pos Zero) vuz30",fontsize=16,color="blue",shape="box"];3385[label="+ :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];22 -> 3385[label="",style="solid", color="blue", weight=9]; 3385 -> 27[label="",style="solid", color="blue", weight=3]; 3386[label="+ :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];22 -> 3386[label="",style="solid", color="blue", weight=9]; 3386 -> 28[label="",style="solid", color="blue", weight=3]; 3387[label="+ :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];22 -> 3387[label="",style="solid", color="blue", weight=9]; 3387 -> 29[label="",style="solid", color="blue", weight=3]; 3388[label="+ :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];22 -> 3388[label="",style="solid", color="blue", weight=9]; 3388 -> 30[label="",style="solid", color="blue", weight=3]; 3389[label="+ :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];22 -> 3389[label="",style="solid", color="blue", weight=9]; 3389 -> 31[label="",style="solid", color="blue", weight=3]; 23[label="vuz31",fontsize=16,color="green",shape="box"];21[label="enforceWHNF (WHNF vuz7) (foldl' (+) vuz7) vuz8",fontsize=16,color="black",shape="triangle"];21 -> 32[label="",style="solid", color="black", weight=3]; 24[label="Float (Pos Zero) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];25[label="Double (Pos Zero) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];26[label="fromInt (Pos Zero) :% fromInt (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];26 -> 33[label="",style="dashed", color="green", weight=3]; 26 -> 34[label="",style="dashed", color="green", weight=3]; 27 -> 35[label="",style="dashed", color="red", weight=0]; 27[label="(+) fromInt (Pos Zero) vuz30",fontsize=16,color="magenta"];27 -> 36[label="",style="dashed", color="magenta", weight=3]; 28 -> 37[label="",style="dashed", color="red", weight=0]; 28[label="(+) fromInt (Pos Zero) vuz30",fontsize=16,color="magenta"];28 -> 38[label="",style="dashed", color="magenta", weight=3]; 29 -> 39[label="",style="dashed", color="red", weight=0]; 29[label="(+) fromInt (Pos Zero) vuz30",fontsize=16,color="magenta"];29 -> 40[label="",style="dashed", color="magenta", weight=3]; 30 -> 41[label="",style="dashed", color="red", weight=0]; 30[label="(+) fromInt (Pos Zero) vuz30",fontsize=16,color="magenta"];30 -> 42[label="",style="dashed", color="magenta", weight=3]; 31 -> 43[label="",style="dashed", color="red", weight=0]; 31[label="(+) fromInt (Pos Zero) vuz30",fontsize=16,color="magenta"];31 -> 44[label="",style="dashed", color="magenta", weight=3]; 32[label="foldl' (+) vuz7 vuz8",fontsize=16,color="burlywood",shape="box"];3390[label="vuz8/vuz80 : vuz81",fontsize=10,color="white",style="solid",shape="box"];32 -> 3390[label="",style="solid", color="burlywood", weight=9]; 3390 -> 45[label="",style="solid", color="burlywood", weight=3]; 3391[label="vuz8/[]",fontsize=10,color="white",style="solid",shape="box"];32 -> 3391[label="",style="solid", color="burlywood", weight=9]; 3391 -> 46[label="",style="solid", color="burlywood", weight=3]; 33[label="fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];3392[label="fromInt :: Int -> Integer",fontsize=10,color="white",style="solid",shape="box"];33 -> 3392[label="",style="solid", color="blue", weight=9]; 3392 -> 47[label="",style="solid", color="blue", weight=3]; 3393[label="fromInt :: Int -> Int",fontsize=10,color="white",style="solid",shape="box"];33 -> 3393[label="",style="solid", color="blue", weight=9]; 3393 -> 48[label="",style="solid", color="blue", weight=3]; 34[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];3394[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];34 -> 3394[label="",style="solid", color="blue", weight=9]; 3394 -> 49[label="",style="solid", color="blue", weight=3]; 3395[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];34 -> 3395[label="",style="solid", color="blue", weight=9]; 3395 -> 50[label="",style="solid", color="blue", weight=3]; 36 -> 10[label="",style="dashed", color="red", weight=0]; 36[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];35[label="(+) vuz9 vuz30",fontsize=16,color="black",shape="triangle"];35 -> 51[label="",style="solid", color="black", weight=3]; 38 -> 11[label="",style="dashed", color="red", weight=0]; 38[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];37[label="(+) vuz10 vuz30",fontsize=16,color="black",shape="triangle"];37 -> 52[label="",style="solid", color="black", weight=3]; 40 -> 12[label="",style="dashed", color="red", weight=0]; 40[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];39[label="(+) vuz11 vuz30",fontsize=16,color="burlywood",shape="triangle"];3396[label="vuz11/Integer vuz110",fontsize=10,color="white",style="solid",shape="box"];39 -> 3396[label="",style="solid", color="burlywood", weight=9]; 3396 -> 53[label="",style="solid", color="burlywood", weight=3]; 42 -> 13[label="",style="dashed", color="red", weight=0]; 42[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];41[label="(+) vuz12 vuz30",fontsize=16,color="black",shape="triangle"];41 -> 54[label="",style="solid", color="black", weight=3]; 44 -> 14[label="",style="dashed", color="red", weight=0]; 44[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];43[label="(+) vuz13 vuz30",fontsize=16,color="burlywood",shape="triangle"];3397[label="vuz13/vuz130 :% vuz131",fontsize=10,color="white",style="solid",shape="box"];43 -> 3397[label="",style="solid", color="burlywood", weight=9]; 3397 -> 55[label="",style="solid", color="burlywood", weight=3]; 45[label="foldl' (+) vuz7 (vuz80 : vuz81)",fontsize=16,color="black",shape="box"];45 -> 56[label="",style="solid", color="black", weight=3]; 46[label="foldl' (+) vuz7 []",fontsize=16,color="black",shape="box"];46 -> 57[label="",style="solid", color="black", weight=3]; 47 -> 12[label="",style="dashed", color="red", weight=0]; 47[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];48 -> 13[label="",style="dashed", color="red", weight=0]; 48[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];49[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];49 -> 58[label="",style="solid", color="black", weight=3]; 50[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];50 -> 59[label="",style="solid", color="black", weight=3]; 51[label="primPlusFloat vuz9 vuz30",fontsize=16,color="burlywood",shape="box"];3398[label="vuz9/Float vuz90 vuz91",fontsize=10,color="white",style="solid",shape="box"];51 -> 3398[label="",style="solid", color="burlywood", weight=9]; 3398 -> 60[label="",style="solid", color="burlywood", weight=3]; 52[label="primPlusDouble vuz10 vuz30",fontsize=16,color="burlywood",shape="box"];3399[label="vuz10/Double vuz100 vuz101",fontsize=10,color="white",style="solid",shape="box"];52 -> 3399[label="",style="solid", color="burlywood", weight=9]; 3399 -> 61[label="",style="solid", color="burlywood", weight=3]; 53[label="(+) Integer vuz110 vuz30",fontsize=16,color="burlywood",shape="box"];3400[label="vuz30/Integer vuz300",fontsize=10,color="white",style="solid",shape="box"];53 -> 3400[label="",style="solid", color="burlywood", weight=9]; 3400 -> 62[label="",style="solid", color="burlywood", weight=3]; 54[label="primPlusInt vuz12 vuz30",fontsize=16,color="burlywood",shape="triangle"];3401[label="vuz12/Pos vuz120",fontsize=10,color="white",style="solid",shape="box"];54 -> 3401[label="",style="solid", color="burlywood", weight=9]; 3401 -> 63[label="",style="solid", color="burlywood", weight=3]; 3402[label="vuz12/Neg vuz120",fontsize=10,color="white",style="solid",shape="box"];54 -> 3402[label="",style="solid", color="burlywood", weight=9]; 3402 -> 64[label="",style="solid", color="burlywood", weight=3]; 55[label="(+) vuz130 :% vuz131 vuz30",fontsize=16,color="burlywood",shape="box"];3403[label="vuz30/vuz300 :% vuz301",fontsize=10,color="white",style="solid",shape="box"];55 -> 3403[label="",style="solid", color="burlywood", weight=9]; 3403 -> 65[label="",style="solid", color="burlywood", weight=3]; 56[label="(foldl' (+) $! (+) vuz7 vuz80)",fontsize=16,color="black",shape="box"];56 -> 66[label="",style="solid", color="black", weight=3]; 57[label="vuz7",fontsize=16,color="green",shape="box"];58[label="Integer (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];59[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];60[label="primPlusFloat (Float vuz90 vuz91) vuz30",fontsize=16,color="burlywood",shape="box"];3404[label="vuz30/Float vuz300 vuz301",fontsize=10,color="white",style="solid",shape="box"];60 -> 3404[label="",style="solid", color="burlywood", weight=9]; 3404 -> 67[label="",style="solid", color="burlywood", weight=3]; 61[label="primPlusDouble (Double vuz100 vuz101) vuz30",fontsize=16,color="burlywood",shape="box"];3405[label="vuz30/Double vuz300 vuz301",fontsize=10,color="white",style="solid",shape="box"];61 -> 3405[label="",style="solid", color="burlywood", weight=9]; 3405 -> 68[label="",style="solid", color="burlywood", weight=3]; 62[label="(+) Integer vuz110 Integer vuz300",fontsize=16,color="black",shape="box"];62 -> 69[label="",style="solid", color="black", weight=3]; 63[label="primPlusInt (Pos vuz120) vuz30",fontsize=16,color="burlywood",shape="box"];3406[label="vuz30/Pos vuz300",fontsize=10,color="white",style="solid",shape="box"];63 -> 3406[label="",style="solid", color="burlywood", weight=9]; 3406 -> 70[label="",style="solid", color="burlywood", weight=3]; 3407[label="vuz30/Neg vuz300",fontsize=10,color="white",style="solid",shape="box"];63 -> 3407[label="",style="solid", color="burlywood", weight=9]; 3407 -> 71[label="",style="solid", color="burlywood", weight=3]; 64[label="primPlusInt (Neg vuz120) vuz30",fontsize=16,color="burlywood",shape="box"];3408[label="vuz30/Pos vuz300",fontsize=10,color="white",style="solid",shape="box"];64 -> 3408[label="",style="solid", color="burlywood", weight=9]; 3408 -> 72[label="",style="solid", color="burlywood", weight=3]; 3409[label="vuz30/Neg vuz300",fontsize=10,color="white",style="solid",shape="box"];64 -> 3409[label="",style="solid", color="burlywood", weight=9]; 3409 -> 73[label="",style="solid", color="burlywood", weight=3]; 65[label="(+) vuz130 :% vuz131 vuz300 :% vuz301",fontsize=16,color="black",shape="box"];65 -> 74[label="",style="solid", color="black", weight=3]; 66[label="((+) vuz7 vuz80 `seq` foldl' (+) ((+) vuz7 vuz80))",fontsize=16,color="black",shape="box"];66 -> 75[label="",style="solid", color="black", weight=3]; 67[label="primPlusFloat (Float vuz90 vuz91) (Float vuz300 vuz301)",fontsize=16,color="black",shape="box"];67 -> 76[label="",style="solid", color="black", weight=3]; 68[label="primPlusDouble (Double vuz100 vuz101) (Double vuz300 vuz301)",fontsize=16,color="black",shape="box"];68 -> 77[label="",style="solid", color="black", weight=3]; 69[label="Integer (primPlusInt vuz110 vuz300)",fontsize=16,color="green",shape="box"];69 -> 78[label="",style="dashed", color="green", weight=3]; 70[label="primPlusInt (Pos vuz120) (Pos vuz300)",fontsize=16,color="black",shape="box"];70 -> 79[label="",style="solid", color="black", weight=3]; 71[label="primPlusInt (Pos vuz120) (Neg vuz300)",fontsize=16,color="black",shape="box"];71 -> 80[label="",style="solid", color="black", weight=3]; 72[label="primPlusInt (Neg vuz120) (Pos vuz300)",fontsize=16,color="black",shape="box"];72 -> 81[label="",style="solid", color="black", weight=3]; 73[label="primPlusInt (Neg vuz120) (Neg vuz300)",fontsize=16,color="black",shape="box"];73 -> 82[label="",style="solid", color="black", weight=3]; 74[label="reduce (vuz130 * vuz301 + vuz300 * vuz131) (vuz131 * vuz301)",fontsize=16,color="black",shape="box"];74 -> 83[label="",style="solid", color="black", weight=3]; 75 -> 21[label="",style="dashed", color="red", weight=0]; 75[label="enforceWHNF (WHNF ((+) vuz7 vuz80)) (foldl' (+) ((+) vuz7 vuz80)) vuz81",fontsize=16,color="magenta"];75 -> 84[label="",style="dashed", color="magenta", weight=3]; 75 -> 85[label="",style="dashed", color="magenta", weight=3]; 76[label="Float (vuz90 * vuz301 + vuz300 * vuz91) (vuz91 * vuz301)",fontsize=16,color="green",shape="box"];76 -> 86[label="",style="dashed", color="green", weight=3]; 76 -> 87[label="",style="dashed", color="green", weight=3]; 77[label="Double (vuz100 * vuz301 + vuz300 * vuz101) (vuz101 * vuz301)",fontsize=16,color="green",shape="box"];77 -> 88[label="",style="dashed", color="green", weight=3]; 77 -> 89[label="",style="dashed", color="green", weight=3]; 78 -> 54[label="",style="dashed", color="red", weight=0]; 78[label="primPlusInt vuz110 vuz300",fontsize=16,color="magenta"];78 -> 90[label="",style="dashed", color="magenta", weight=3]; 78 -> 91[label="",style="dashed", color="magenta", weight=3]; 79[label="Pos (primPlusNat vuz120 vuz300)",fontsize=16,color="green",shape="box"];79 -> 92[label="",style="dashed", color="green", weight=3]; 80[label="primMinusNat vuz120 vuz300",fontsize=16,color="burlywood",shape="triangle"];3410[label="vuz120/Succ vuz1200",fontsize=10,color="white",style="solid",shape="box"];80 -> 3410[label="",style="solid", color="burlywood", weight=9]; 3410 -> 93[label="",style="solid", color="burlywood", weight=3]; 3411[label="vuz120/Zero",fontsize=10,color="white",style="solid",shape="box"];80 -> 3411[label="",style="solid", color="burlywood", weight=9]; 3411 -> 94[label="",style="solid", color="burlywood", weight=3]; 81 -> 80[label="",style="dashed", color="red", weight=0]; 81[label="primMinusNat vuz300 vuz120",fontsize=16,color="magenta"];81 -> 95[label="",style="dashed", color="magenta", weight=3]; 81 -> 96[label="",style="dashed", color="magenta", weight=3]; 82[label="Neg (primPlusNat vuz120 vuz300)",fontsize=16,color="green",shape="box"];82 -> 97[label="",style="dashed", color="green", weight=3]; 83[label="reduce2 (vuz130 * vuz301 + vuz300 * vuz131) (vuz131 * vuz301)",fontsize=16,color="black",shape="box"];83 -> 98[label="",style="solid", color="black", weight=3]; 84[label="(+) vuz7 vuz80",fontsize=16,color="blue",shape="box"];3412[label="+ :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];84 -> 3412[label="",style="solid", color="blue", weight=9]; 3412 -> 99[label="",style="solid", color="blue", weight=3]; 3413[label="+ :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];84 -> 3413[label="",style="solid", color="blue", weight=9]; 3413 -> 100[label="",style="solid", color="blue", weight=3]; 3414[label="+ :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];84 -> 3414[label="",style="solid", color="blue", weight=9]; 3414 -> 101[label="",style="solid", color="blue", weight=3]; 3415[label="+ :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];84 -> 3415[label="",style="solid", color="blue", weight=9]; 3415 -> 102[label="",style="solid", color="blue", weight=3]; 3416[label="+ :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];84 -> 3416[label="",style="solid", color="blue", weight=9]; 3416 -> 103[label="",style="solid", color="blue", weight=3]; 85[label="vuz81",fontsize=16,color="green",shape="box"];86 -> 41[label="",style="dashed", color="red", weight=0]; 86[label="vuz90 * vuz301 + vuz300 * vuz91",fontsize=16,color="magenta"];86 -> 104[label="",style="dashed", color="magenta", weight=3]; 86 -> 105[label="",style="dashed", color="magenta", weight=3]; 87[label="vuz91 * vuz301",fontsize=16,color="black",shape="triangle"];87 -> 106[label="",style="solid", color="black", weight=3]; 88 -> 41[label="",style="dashed", color="red", weight=0]; 88[label="vuz100 * vuz301 + vuz300 * vuz101",fontsize=16,color="magenta"];88 -> 107[label="",style="dashed", color="magenta", weight=3]; 88 -> 108[label="",style="dashed", color="magenta", weight=3]; 89 -> 87[label="",style="dashed", color="red", weight=0]; 89[label="vuz101 * vuz301",fontsize=16,color="magenta"];89 -> 109[label="",style="dashed", color="magenta", weight=3]; 89 -> 110[label="",style="dashed", color="magenta", weight=3]; 90[label="vuz300",fontsize=16,color="green",shape="box"];91[label="vuz110",fontsize=16,color="green",shape="box"];92[label="primPlusNat vuz120 vuz300",fontsize=16,color="burlywood",shape="triangle"];3417[label="vuz120/Succ vuz1200",fontsize=10,color="white",style="solid",shape="box"];92 -> 3417[label="",style="solid", color="burlywood", weight=9]; 3417 -> 111[label="",style="solid", color="burlywood", weight=3]; 3418[label="vuz120/Zero",fontsize=10,color="white",style="solid",shape="box"];92 -> 3418[label="",style="solid", color="burlywood", weight=9]; 3418 -> 112[label="",style="solid", color="burlywood", weight=3]; 93[label="primMinusNat (Succ vuz1200) vuz300",fontsize=16,color="burlywood",shape="box"];3419[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];93 -> 3419[label="",style="solid", color="burlywood", weight=9]; 3419 -> 113[label="",style="solid", color="burlywood", weight=3]; 3420[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];93 -> 3420[label="",style="solid", color="burlywood", weight=9]; 3420 -> 114[label="",style="solid", color="burlywood", weight=3]; 94[label="primMinusNat Zero vuz300",fontsize=16,color="burlywood",shape="box"];3421[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];94 -> 3421[label="",style="solid", color="burlywood", weight=9]; 3421 -> 115[label="",style="solid", color="burlywood", weight=3]; 3422[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];94 -> 3422[label="",style="solid", color="burlywood", weight=9]; 3422 -> 116[label="",style="solid", color="burlywood", weight=3]; 95[label="vuz300",fontsize=16,color="green",shape="box"];96[label="vuz120",fontsize=16,color="green",shape="box"];97 -> 92[label="",style="dashed", color="red", weight=0]; 97[label="primPlusNat vuz120 vuz300",fontsize=16,color="magenta"];97 -> 117[label="",style="dashed", color="magenta", weight=3]; 97 -> 118[label="",style="dashed", color="magenta", weight=3]; 98 -> 119[label="",style="dashed", color="red", weight=0]; 98[label="reduce2Reduce1 (vuz130 * vuz301 + vuz300 * vuz131) (vuz131 * vuz301) (vuz130 * vuz301 + vuz300 * vuz131) (vuz131 * vuz301) (vuz131 * vuz301 == fromInt (Pos Zero))",fontsize=16,color="magenta"];98 -> 120[label="",style="dashed", color="magenta", weight=3]; 98 -> 121[label="",style="dashed", color="magenta", weight=3]; 98 -> 122[label="",style="dashed", color="magenta", weight=3]; 98 -> 123[label="",style="dashed", color="magenta", weight=3]; 98 -> 124[label="",style="dashed", color="magenta", weight=3]; 99 -> 35[label="",style="dashed", color="red", weight=0]; 99[label="(+) vuz7 vuz80",fontsize=16,color="magenta"];99 -> 125[label="",style="dashed", color="magenta", weight=3]; 99 -> 126[label="",style="dashed", color="magenta", weight=3]; 100 -> 37[label="",style="dashed", color="red", weight=0]; 100[label="(+) vuz7 vuz80",fontsize=16,color="magenta"];100 -> 127[label="",style="dashed", color="magenta", weight=3]; 100 -> 128[label="",style="dashed", color="magenta", weight=3]; 101 -> 39[label="",style="dashed", color="red", weight=0]; 101[label="(+) vuz7 vuz80",fontsize=16,color="magenta"];101 -> 129[label="",style="dashed", color="magenta", weight=3]; 101 -> 130[label="",style="dashed", color="magenta", weight=3]; 102 -> 41[label="",style="dashed", color="red", weight=0]; 102[label="(+) vuz7 vuz80",fontsize=16,color="magenta"];102 -> 131[label="",style="dashed", color="magenta", weight=3]; 102 -> 132[label="",style="dashed", color="magenta", weight=3]; 103 -> 43[label="",style="dashed", color="red", weight=0]; 103[label="(+) vuz7 vuz80",fontsize=16,color="magenta"];103 -> 133[label="",style="dashed", color="magenta", weight=3]; 103 -> 134[label="",style="dashed", color="magenta", weight=3]; 104 -> 87[label="",style="dashed", color="red", weight=0]; 104[label="vuz300 * vuz91",fontsize=16,color="magenta"];104 -> 135[label="",style="dashed", color="magenta", weight=3]; 104 -> 136[label="",style="dashed", color="magenta", weight=3]; 105 -> 87[label="",style="dashed", color="red", weight=0]; 105[label="vuz90 * vuz301",fontsize=16,color="magenta"];105 -> 137[label="",style="dashed", color="magenta", weight=3]; 106[label="primMulInt vuz91 vuz301",fontsize=16,color="burlywood",shape="triangle"];3423[label="vuz91/Pos vuz910",fontsize=10,color="white",style="solid",shape="box"];106 -> 3423[label="",style="solid", color="burlywood", weight=9]; 3423 -> 138[label="",style="solid", color="burlywood", weight=3]; 3424[label="vuz91/Neg vuz910",fontsize=10,color="white",style="solid",shape="box"];106 -> 3424[label="",style="solid", color="burlywood", weight=9]; 3424 -> 139[label="",style="solid", color="burlywood", weight=3]; 107 -> 87[label="",style="dashed", color="red", weight=0]; 107[label="vuz300 * vuz101",fontsize=16,color="magenta"];107 -> 140[label="",style="dashed", color="magenta", weight=3]; 107 -> 141[label="",style="dashed", color="magenta", weight=3]; 108 -> 87[label="",style="dashed", color="red", weight=0]; 108[label="vuz100 * vuz301",fontsize=16,color="magenta"];108 -> 142[label="",style="dashed", color="magenta", weight=3]; 108 -> 143[label="",style="dashed", color="magenta", weight=3]; 109[label="vuz301",fontsize=16,color="green",shape="box"];110[label="vuz101",fontsize=16,color="green",shape="box"];111[label="primPlusNat (Succ vuz1200) vuz300",fontsize=16,color="burlywood",shape="box"];3425[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];111 -> 3425[label="",style="solid", color="burlywood", weight=9]; 3425 -> 144[label="",style="solid", color="burlywood", weight=3]; 3426[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];111 -> 3426[label="",style="solid", color="burlywood", weight=9]; 3426 -> 145[label="",style="solid", color="burlywood", weight=3]; 112[label="primPlusNat Zero vuz300",fontsize=16,color="burlywood",shape="box"];3427[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];112 -> 3427[label="",style="solid", color="burlywood", weight=9]; 3427 -> 146[label="",style="solid", color="burlywood", weight=3]; 3428[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];112 -> 3428[label="",style="solid", color="burlywood", weight=9]; 3428 -> 147[label="",style="solid", color="burlywood", weight=3]; 113[label="primMinusNat (Succ vuz1200) (Succ vuz3000)",fontsize=16,color="black",shape="box"];113 -> 148[label="",style="solid", color="black", weight=3]; 114[label="primMinusNat (Succ vuz1200) Zero",fontsize=16,color="black",shape="box"];114 -> 149[label="",style="solid", color="black", weight=3]; 115[label="primMinusNat Zero (Succ vuz3000)",fontsize=16,color="black",shape="box"];115 -> 150[label="",style="solid", color="black", weight=3]; 116[label="primMinusNat Zero Zero",fontsize=16,color="black",shape="box"];116 -> 151[label="",style="solid", color="black", weight=3]; 117[label="vuz120",fontsize=16,color="green",shape="box"];118[label="vuz300",fontsize=16,color="green",shape="box"];120[label="vuz301",fontsize=16,color="green",shape="box"];121[label="vuz131",fontsize=16,color="green",shape="box"];122[label="vuz130",fontsize=16,color="green",shape="box"];123[label="vuz131 * vuz301 == fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];3429[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];123 -> 3429[label="",style="solid", color="blue", weight=9]; 3429 -> 152[label="",style="solid", color="blue", weight=3]; 3430[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];123 -> 3430[label="",style="solid", color="blue", weight=9]; 3430 -> 153[label="",style="solid", color="blue", weight=3]; 124[label="vuz300",fontsize=16,color="green",shape="box"];119[label="reduce2Reduce1 (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) vuz24",fontsize=16,color="burlywood",shape="triangle"];3431[label="vuz24/False",fontsize=10,color="white",style="solid",shape="box"];119 -> 3431[label="",style="solid", color="burlywood", weight=9]; 3431 -> 154[label="",style="solid", color="burlywood", weight=3]; 3432[label="vuz24/True",fontsize=10,color="white",style="solid",shape="box"];119 -> 3432[label="",style="solid", color="burlywood", weight=9]; 3432 -> 155[label="",style="solid", color="burlywood", weight=3]; 125[label="vuz7",fontsize=16,color="green",shape="box"];126[label="vuz80",fontsize=16,color="green",shape="box"];127[label="vuz80",fontsize=16,color="green",shape="box"];128[label="vuz7",fontsize=16,color="green",shape="box"];129[label="vuz7",fontsize=16,color="green",shape="box"];130[label="vuz80",fontsize=16,color="green",shape="box"];131[label="vuz80",fontsize=16,color="green",shape="box"];132[label="vuz7",fontsize=16,color="green",shape="box"];133[label="vuz80",fontsize=16,color="green",shape="box"];134[label="vuz7",fontsize=16,color="green",shape="box"];135[label="vuz91",fontsize=16,color="green",shape="box"];136[label="vuz300",fontsize=16,color="green",shape="box"];137[label="vuz90",fontsize=16,color="green",shape="box"];138[label="primMulInt (Pos vuz910) vuz301",fontsize=16,color="burlywood",shape="box"];3433[label="vuz301/Pos vuz3010",fontsize=10,color="white",style="solid",shape="box"];138 -> 3433[label="",style="solid", color="burlywood", weight=9]; 3433 -> 156[label="",style="solid", color="burlywood", weight=3]; 3434[label="vuz301/Neg vuz3010",fontsize=10,color="white",style="solid",shape="box"];138 -> 3434[label="",style="solid", color="burlywood", weight=9]; 3434 -> 157[label="",style="solid", color="burlywood", weight=3]; 139[label="primMulInt (Neg vuz910) vuz301",fontsize=16,color="burlywood",shape="box"];3435[label="vuz301/Pos vuz3010",fontsize=10,color="white",style="solid",shape="box"];139 -> 3435[label="",style="solid", color="burlywood", weight=9]; 3435 -> 158[label="",style="solid", color="burlywood", weight=3]; 3436[label="vuz301/Neg vuz3010",fontsize=10,color="white",style="solid",shape="box"];139 -> 3436[label="",style="solid", color="burlywood", weight=9]; 3436 -> 159[label="",style="solid", color="burlywood", weight=3]; 140[label="vuz101",fontsize=16,color="green",shape="box"];141[label="vuz300",fontsize=16,color="green",shape="box"];142[label="vuz301",fontsize=16,color="green",shape="box"];143[label="vuz100",fontsize=16,color="green",shape="box"];144[label="primPlusNat (Succ vuz1200) (Succ vuz3000)",fontsize=16,color="black",shape="box"];144 -> 160[label="",style="solid", color="black", weight=3]; 145[label="primPlusNat (Succ vuz1200) Zero",fontsize=16,color="black",shape="box"];145 -> 161[label="",style="solid", color="black", weight=3]; 146[label="primPlusNat Zero (Succ vuz3000)",fontsize=16,color="black",shape="box"];146 -> 162[label="",style="solid", color="black", weight=3]; 147[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];147 -> 163[label="",style="solid", color="black", weight=3]; 148 -> 80[label="",style="dashed", color="red", weight=0]; 148[label="primMinusNat vuz1200 vuz3000",fontsize=16,color="magenta"];148 -> 164[label="",style="dashed", color="magenta", weight=3]; 148 -> 165[label="",style="dashed", color="magenta", weight=3]; 149[label="Pos (Succ vuz1200)",fontsize=16,color="green",shape="box"];150[label="Neg (Succ vuz3000)",fontsize=16,color="green",shape="box"];151[label="Pos Zero",fontsize=16,color="green",shape="box"];152 -> 166[label="",style="dashed", color="red", weight=0]; 152[label="vuz131 * vuz301 == fromInt (Pos Zero)",fontsize=16,color="magenta"];152 -> 167[label="",style="dashed", color="magenta", weight=3]; 153 -> 168[label="",style="dashed", color="red", weight=0]; 153[label="vuz131 * vuz301 == fromInt (Pos Zero)",fontsize=16,color="magenta"];153 -> 169[label="",style="dashed", color="magenta", weight=3]; 153 -> 170[label="",style="dashed", color="magenta", weight=3]; 154[label="reduce2Reduce1 (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) False",fontsize=16,color="black",shape="box"];154 -> 171[label="",style="solid", color="black", weight=3]; 155[label="reduce2Reduce1 (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) True",fontsize=16,color="black",shape="box"];155 -> 172[label="",style="solid", color="black", weight=3]; 156[label="primMulInt (Pos vuz910) (Pos vuz3010)",fontsize=16,color="black",shape="box"];156 -> 173[label="",style="solid", color="black", weight=3]; 157[label="primMulInt (Pos vuz910) (Neg vuz3010)",fontsize=16,color="black",shape="box"];157 -> 174[label="",style="solid", color="black", weight=3]; 158[label="primMulInt (Neg vuz910) (Pos vuz3010)",fontsize=16,color="black",shape="box"];158 -> 175[label="",style="solid", color="black", weight=3]; 159[label="primMulInt (Neg vuz910) (Neg vuz3010)",fontsize=16,color="black",shape="box"];159 -> 176[label="",style="solid", color="black", weight=3]; 160[label="Succ (Succ (primPlusNat vuz1200 vuz3000))",fontsize=16,color="green",shape="box"];160 -> 177[label="",style="dashed", color="green", weight=3]; 161[label="Succ vuz1200",fontsize=16,color="green",shape="box"];162[label="Succ vuz3000",fontsize=16,color="green",shape="box"];163[label="Zero",fontsize=16,color="green",shape="box"];164[label="vuz1200",fontsize=16,color="green",shape="box"];165[label="vuz3000",fontsize=16,color="green",shape="box"];167 -> 12[label="",style="dashed", color="red", weight=0]; 167[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];166[label="vuz131 * vuz301 == vuz25",fontsize=16,color="burlywood",shape="triangle"];3437[label="vuz131/Integer vuz1310",fontsize=10,color="white",style="solid",shape="box"];166 -> 3437[label="",style="solid", color="burlywood", weight=9]; 3437 -> 178[label="",style="solid", color="burlywood", weight=3]; 169 -> 87[label="",style="dashed", color="red", weight=0]; 169[label="vuz131 * vuz301",fontsize=16,color="magenta"];169 -> 179[label="",style="dashed", color="magenta", weight=3]; 169 -> 180[label="",style="dashed", color="magenta", weight=3]; 170 -> 13[label="",style="dashed", color="red", weight=0]; 170[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];168[label="vuz27 == vuz26",fontsize=16,color="black",shape="triangle"];168 -> 181[label="",style="solid", color="black", weight=3]; 171[label="reduce2Reduce0 (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) otherwise",fontsize=16,color="black",shape="box"];171 -> 182[label="",style="solid", color="black", weight=3]; 172[label="error []",fontsize=16,color="black",shape="box"];172 -> 183[label="",style="solid", color="black", weight=3]; 173[label="Pos (primMulNat vuz910 vuz3010)",fontsize=16,color="green",shape="box"];173 -> 184[label="",style="dashed", color="green", weight=3]; 174[label="Neg (primMulNat vuz910 vuz3010)",fontsize=16,color="green",shape="box"];174 -> 185[label="",style="dashed", color="green", weight=3]; 175[label="Neg (primMulNat vuz910 vuz3010)",fontsize=16,color="green",shape="box"];175 -> 186[label="",style="dashed", color="green", weight=3]; 176[label="Pos (primMulNat vuz910 vuz3010)",fontsize=16,color="green",shape="box"];176 -> 187[label="",style="dashed", color="green", weight=3]; 177 -> 92[label="",style="dashed", color="red", weight=0]; 177[label="primPlusNat vuz1200 vuz3000",fontsize=16,color="magenta"];177 -> 188[label="",style="dashed", color="magenta", weight=3]; 177 -> 189[label="",style="dashed", color="magenta", weight=3]; 178[label="Integer vuz1310 * vuz301 == vuz25",fontsize=16,color="burlywood",shape="box"];3438[label="vuz301/Integer vuz3010",fontsize=10,color="white",style="solid",shape="box"];178 -> 3438[label="",style="solid", color="burlywood", weight=9]; 3438 -> 190[label="",style="solid", color="burlywood", weight=3]; 179[label="vuz301",fontsize=16,color="green",shape="box"];180[label="vuz131",fontsize=16,color="green",shape="box"];181[label="primEqInt vuz27 vuz26",fontsize=16,color="burlywood",shape="triangle"];3439[label="vuz27/Pos vuz270",fontsize=10,color="white",style="solid",shape="box"];181 -> 3439[label="",style="solid", color="burlywood", weight=9]; 3439 -> 191[label="",style="solid", color="burlywood", weight=3]; 3440[label="vuz27/Neg vuz270",fontsize=10,color="white",style="solid",shape="box"];181 -> 3440[label="",style="solid", color="burlywood", weight=9]; 3440 -> 192[label="",style="solid", color="burlywood", weight=3]; 182[label="reduce2Reduce0 (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) True",fontsize=16,color="black",shape="box"];182 -> 193[label="",style="solid", color="black", weight=3]; 183[label="error []",fontsize=16,color="red",shape="box"];184[label="primMulNat vuz910 vuz3010",fontsize=16,color="burlywood",shape="triangle"];3441[label="vuz910/Succ vuz9100",fontsize=10,color="white",style="solid",shape="box"];184 -> 3441[label="",style="solid", color="burlywood", weight=9]; 3441 -> 194[label="",style="solid", color="burlywood", weight=3]; 3442[label="vuz910/Zero",fontsize=10,color="white",style="solid",shape="box"];184 -> 3442[label="",style="solid", color="burlywood", weight=9]; 3442 -> 195[label="",style="solid", color="burlywood", weight=3]; 185 -> 184[label="",style="dashed", color="red", weight=0]; 185[label="primMulNat vuz910 vuz3010",fontsize=16,color="magenta"];185 -> 196[label="",style="dashed", color="magenta", weight=3]; 186 -> 184[label="",style="dashed", color="red", weight=0]; 186[label="primMulNat vuz910 vuz3010",fontsize=16,color="magenta"];186 -> 197[label="",style="dashed", color="magenta", weight=3]; 187 -> 184[label="",style="dashed", color="red", weight=0]; 187[label="primMulNat vuz910 vuz3010",fontsize=16,color="magenta"];187 -> 198[label="",style="dashed", color="magenta", weight=3]; 187 -> 199[label="",style="dashed", color="magenta", weight=3]; 188[label="vuz1200",fontsize=16,color="green",shape="box"];189[label="vuz3000",fontsize=16,color="green",shape="box"];190[label="Integer vuz1310 * Integer vuz3010 == vuz25",fontsize=16,color="black",shape="box"];190 -> 200[label="",style="solid", color="black", weight=3]; 191[label="primEqInt (Pos vuz270) vuz26",fontsize=16,color="burlywood",shape="box"];3443[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];191 -> 3443[label="",style="solid", color="burlywood", weight=9]; 3443 -> 201[label="",style="solid", color="burlywood", weight=3]; 3444[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];191 -> 3444[label="",style="solid", color="burlywood", weight=9]; 3444 -> 202[label="",style="solid", color="burlywood", weight=3]; 192[label="primEqInt (Neg vuz270) vuz26",fontsize=16,color="burlywood",shape="box"];3445[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];192 -> 3445[label="",style="solid", color="burlywood", weight=9]; 3445 -> 203[label="",style="solid", color="burlywood", weight=3]; 3446[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];192 -> 3446[label="",style="solid", color="burlywood", weight=9]; 3446 -> 204[label="",style="solid", color="burlywood", weight=3]; 193[label="(vuz20 * vuz21 + vuz22 * vuz23) `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21) :% (vuz23 * vuz21 `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21))",fontsize=16,color="green",shape="box"];193 -> 205[label="",style="dashed", color="green", weight=3]; 193 -> 206[label="",style="dashed", color="green", weight=3]; 194[label="primMulNat (Succ vuz9100) vuz3010",fontsize=16,color="burlywood",shape="box"];3447[label="vuz3010/Succ vuz30100",fontsize=10,color="white",style="solid",shape="box"];194 -> 3447[label="",style="solid", color="burlywood", weight=9]; 3447 -> 207[label="",style="solid", color="burlywood", weight=3]; 3448[label="vuz3010/Zero",fontsize=10,color="white",style="solid",shape="box"];194 -> 3448[label="",style="solid", color="burlywood", weight=9]; 3448 -> 208[label="",style="solid", color="burlywood", weight=3]; 195[label="primMulNat Zero vuz3010",fontsize=16,color="burlywood",shape="box"];3449[label="vuz3010/Succ vuz30100",fontsize=10,color="white",style="solid",shape="box"];195 -> 3449[label="",style="solid", color="burlywood", weight=9]; 3449 -> 209[label="",style="solid", color="burlywood", weight=3]; 3450[label="vuz3010/Zero",fontsize=10,color="white",style="solid",shape="box"];195 -> 3450[label="",style="solid", color="burlywood", weight=9]; 3450 -> 210[label="",style="solid", color="burlywood", weight=3]; 196[label="vuz3010",fontsize=16,color="green",shape="box"];197[label="vuz910",fontsize=16,color="green",shape="box"];198[label="vuz910",fontsize=16,color="green",shape="box"];199[label="vuz3010",fontsize=16,color="green",shape="box"];200 -> 211[label="",style="dashed", color="red", weight=0]; 200[label="Integer (primMulInt vuz1310 vuz3010) == vuz25",fontsize=16,color="magenta"];200 -> 212[label="",style="dashed", color="magenta", weight=3]; 201[label="primEqInt (Pos (Succ vuz2700)) vuz26",fontsize=16,color="burlywood",shape="box"];3451[label="vuz26/Pos vuz260",fontsize=10,color="white",style="solid",shape="box"];201 -> 3451[label="",style="solid", color="burlywood", weight=9]; 3451 -> 213[label="",style="solid", color="burlywood", weight=3]; 3452[label="vuz26/Neg vuz260",fontsize=10,color="white",style="solid",shape="box"];201 -> 3452[label="",style="solid", color="burlywood", weight=9]; 3452 -> 214[label="",style="solid", color="burlywood", weight=3]; 202[label="primEqInt (Pos Zero) vuz26",fontsize=16,color="burlywood",shape="box"];3453[label="vuz26/Pos vuz260",fontsize=10,color="white",style="solid",shape="box"];202 -> 3453[label="",style="solid", color="burlywood", weight=9]; 3453 -> 215[label="",style="solid", color="burlywood", weight=3]; 3454[label="vuz26/Neg vuz260",fontsize=10,color="white",style="solid",shape="box"];202 -> 3454[label="",style="solid", color="burlywood", weight=9]; 3454 -> 216[label="",style="solid", color="burlywood", weight=3]; 203[label="primEqInt (Neg (Succ vuz2700)) vuz26",fontsize=16,color="burlywood",shape="box"];3455[label="vuz26/Pos vuz260",fontsize=10,color="white",style="solid",shape="box"];203 -> 3455[label="",style="solid", color="burlywood", weight=9]; 3455 -> 217[label="",style="solid", color="burlywood", weight=3]; 3456[label="vuz26/Neg vuz260",fontsize=10,color="white",style="solid",shape="box"];203 -> 3456[label="",style="solid", color="burlywood", weight=9]; 3456 -> 218[label="",style="solid", color="burlywood", weight=3]; 204[label="primEqInt (Neg Zero) vuz26",fontsize=16,color="burlywood",shape="box"];3457[label="vuz26/Pos vuz260",fontsize=10,color="white",style="solid",shape="box"];204 -> 3457[label="",style="solid", color="burlywood", weight=9]; 3457 -> 219[label="",style="solid", color="burlywood", weight=3]; 3458[label="vuz26/Neg vuz260",fontsize=10,color="white",style="solid",shape="box"];204 -> 3458[label="",style="solid", color="burlywood", weight=9]; 3458 -> 220[label="",style="solid", color="burlywood", weight=3]; 205[label="(vuz20 * vuz21 + vuz22 * vuz23) `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21)",fontsize=16,color="blue",shape="box"];3459[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];205 -> 3459[label="",style="solid", color="blue", weight=9]; 3459 -> 221[label="",style="solid", color="blue", weight=3]; 3460[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];205 -> 3460[label="",style="solid", color="blue", weight=9]; 3460 -> 222[label="",style="solid", color="blue", weight=3]; 206[label="vuz23 * vuz21 `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21)",fontsize=16,color="blue",shape="box"];3461[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];206 -> 3461[label="",style="solid", color="blue", weight=9]; 3461 -> 223[label="",style="solid", color="blue", weight=3]; 3462[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];206 -> 3462[label="",style="solid", color="blue", weight=9]; 3462 -> 224[label="",style="solid", color="blue", weight=3]; 207[label="primMulNat (Succ vuz9100) (Succ vuz30100)",fontsize=16,color="black",shape="box"];207 -> 225[label="",style="solid", color="black", weight=3]; 208[label="primMulNat (Succ vuz9100) Zero",fontsize=16,color="black",shape="box"];208 -> 226[label="",style="solid", color="black", weight=3]; 209[label="primMulNat Zero (Succ vuz30100)",fontsize=16,color="black",shape="box"];209 -> 227[label="",style="solid", color="black", weight=3]; 210[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];210 -> 228[label="",style="solid", color="black", weight=3]; 212 -> 106[label="",style="dashed", color="red", weight=0]; 212[label="primMulInt vuz1310 vuz3010",fontsize=16,color="magenta"];212 -> 229[label="",style="dashed", color="magenta", weight=3]; 212 -> 230[label="",style="dashed", color="magenta", weight=3]; 211[label="Integer vuz28 == vuz25",fontsize=16,color="burlywood",shape="triangle"];3463[label="vuz25/Integer vuz250",fontsize=10,color="white",style="solid",shape="box"];211 -> 3463[label="",style="solid", color="burlywood", weight=9]; 3463 -> 231[label="",style="solid", color="burlywood", weight=3]; 213[label="primEqInt (Pos (Succ vuz2700)) (Pos vuz260)",fontsize=16,color="burlywood",shape="box"];3464[label="vuz260/Succ vuz2600",fontsize=10,color="white",style="solid",shape="box"];213 -> 3464[label="",style="solid", color="burlywood", weight=9]; 3464 -> 232[label="",style="solid", color="burlywood", weight=3]; 3465[label="vuz260/Zero",fontsize=10,color="white",style="solid",shape="box"];213 -> 3465[label="",style="solid", color="burlywood", weight=9]; 3465 -> 233[label="",style="solid", color="burlywood", weight=3]; 214[label="primEqInt (Pos (Succ vuz2700)) (Neg vuz260)",fontsize=16,color="black",shape="box"];214 -> 234[label="",style="solid", color="black", weight=3]; 215[label="primEqInt (Pos Zero) (Pos vuz260)",fontsize=16,color="burlywood",shape="box"];3466[label="vuz260/Succ vuz2600",fontsize=10,color="white",style="solid",shape="box"];215 -> 3466[label="",style="solid", color="burlywood", weight=9]; 3466 -> 235[label="",style="solid", color="burlywood", weight=3]; 3467[label="vuz260/Zero",fontsize=10,color="white",style="solid",shape="box"];215 -> 3467[label="",style="solid", color="burlywood", weight=9]; 3467 -> 236[label="",style="solid", color="burlywood", weight=3]; 216[label="primEqInt (Pos Zero) (Neg vuz260)",fontsize=16,color="burlywood",shape="box"];3468[label="vuz260/Succ vuz2600",fontsize=10,color="white",style="solid",shape="box"];216 -> 3468[label="",style="solid", color="burlywood", weight=9]; 3468 -> 237[label="",style="solid", color="burlywood", weight=3]; 3469[label="vuz260/Zero",fontsize=10,color="white",style="solid",shape="box"];216 -> 3469[label="",style="solid", color="burlywood", weight=9]; 3469 -> 238[label="",style="solid", color="burlywood", weight=3]; 217[label="primEqInt (Neg (Succ vuz2700)) (Pos vuz260)",fontsize=16,color="black",shape="box"];217 -> 239[label="",style="solid", color="black", weight=3]; 218[label="primEqInt (Neg (Succ vuz2700)) (Neg vuz260)",fontsize=16,color="burlywood",shape="box"];3470[label="vuz260/Succ vuz2600",fontsize=10,color="white",style="solid",shape="box"];218 -> 3470[label="",style="solid", color="burlywood", weight=9]; 3470 -> 240[label="",style="solid", color="burlywood", weight=3]; 3471[label="vuz260/Zero",fontsize=10,color="white",style="solid",shape="box"];218 -> 3471[label="",style="solid", color="burlywood", weight=9]; 3471 -> 241[label="",style="solid", color="burlywood", weight=3]; 219[label="primEqInt (Neg Zero) (Pos vuz260)",fontsize=16,color="burlywood",shape="box"];3472[label="vuz260/Succ vuz2600",fontsize=10,color="white",style="solid",shape="box"];219 -> 3472[label="",style="solid", color="burlywood", weight=9]; 3472 -> 242[label="",style="solid", color="burlywood", weight=3]; 3473[label="vuz260/Zero",fontsize=10,color="white",style="solid",shape="box"];219 -> 3473[label="",style="solid", color="burlywood", weight=9]; 3473 -> 243[label="",style="solid", color="burlywood", weight=3]; 220[label="primEqInt (Neg Zero) (Neg vuz260)",fontsize=16,color="burlywood",shape="box"];3474[label="vuz260/Succ vuz2600",fontsize=10,color="white",style="solid",shape="box"];220 -> 3474[label="",style="solid", color="burlywood", weight=9]; 3474 -> 244[label="",style="solid", color="burlywood", weight=3]; 3475[label="vuz260/Zero",fontsize=10,color="white",style="solid",shape="box"];220 -> 3475[label="",style="solid", color="burlywood", weight=9]; 3475 -> 245[label="",style="solid", color="burlywood", weight=3]; 221 -> 246[label="",style="dashed", color="red", weight=0]; 221[label="(vuz20 * vuz21 + vuz22 * vuz23) `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21)",fontsize=16,color="magenta"];221 -> 247[label="",style="dashed", color="magenta", weight=3]; 221 -> 248[label="",style="dashed", color="magenta", weight=3]; 221 -> 249[label="",style="dashed", color="magenta", weight=3]; 222 -> 253[label="",style="dashed", color="red", weight=0]; 222[label="(vuz20 * vuz21 + vuz22 * vuz23) `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21)",fontsize=16,color="magenta"];222 -> 254[label="",style="dashed", color="magenta", weight=3]; 222 -> 255[label="",style="dashed", color="magenta", weight=3]; 223 -> 246[label="",style="dashed", color="red", weight=0]; 223[label="vuz23 * vuz21 `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21)",fontsize=16,color="magenta"];223 -> 250[label="",style="dashed", color="magenta", weight=3]; 223 -> 251[label="",style="dashed", color="magenta", weight=3]; 223 -> 252[label="",style="dashed", color="magenta", weight=3]; 224 -> 253[label="",style="dashed", color="red", weight=0]; 224[label="vuz23 * vuz21 `quot` reduce2D (vuz20 * vuz21 + vuz22 * vuz23) (vuz23 * vuz21)",fontsize=16,color="magenta"];224 -> 256[label="",style="dashed", color="magenta", weight=3]; 224 -> 257[label="",style="dashed", color="magenta", weight=3]; 225 -> 92[label="",style="dashed", color="red", weight=0]; 225[label="primPlusNat (primMulNat vuz9100 (Succ vuz30100)) (Succ vuz30100)",fontsize=16,color="magenta"];225 -> 258[label="",style="dashed", color="magenta", weight=3]; 225 -> 259[label="",style="dashed", color="magenta", weight=3]; 226[label="Zero",fontsize=16,color="green",shape="box"];227[label="Zero",fontsize=16,color="green",shape="box"];228[label="Zero",fontsize=16,color="green",shape="box"];229[label="vuz3010",fontsize=16,color="green",shape="box"];230[label="vuz1310",fontsize=16,color="green",shape="box"];231[label="Integer vuz28 == Integer vuz250",fontsize=16,color="black",shape="box"];231 -> 260[label="",style="solid", color="black", weight=3]; 232[label="primEqInt (Pos (Succ vuz2700)) (Pos (Succ vuz2600))",fontsize=16,color="black",shape="box"];232 -> 261[label="",style="solid", color="black", weight=3]; 233[label="primEqInt (Pos (Succ vuz2700)) (Pos Zero)",fontsize=16,color="black",shape="box"];233 -> 262[label="",style="solid", color="black", weight=3]; 234[label="False",fontsize=16,color="green",shape="box"];235[label="primEqInt (Pos Zero) (Pos (Succ vuz2600))",fontsize=16,color="black",shape="box"];235 -> 263[label="",style="solid", color="black", weight=3]; 236[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];236 -> 264[label="",style="solid", color="black", weight=3]; 237[label="primEqInt (Pos Zero) (Neg (Succ vuz2600))",fontsize=16,color="black",shape="box"];237 -> 265[label="",style="solid", color="black", weight=3]; 238[label="primEqInt (Pos Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];238 -> 266[label="",style="solid", color="black", weight=3]; 239[label="False",fontsize=16,color="green",shape="box"];240[label="primEqInt (Neg (Succ vuz2700)) (Neg (Succ vuz2600))",fontsize=16,color="black",shape="box"];240 -> 267[label="",style="solid", color="black", weight=3]; 241[label="primEqInt (Neg (Succ vuz2700)) (Neg Zero)",fontsize=16,color="black",shape="box"];241 -> 268[label="",style="solid", color="black", weight=3]; 242[label="primEqInt (Neg Zero) (Pos (Succ vuz2600))",fontsize=16,color="black",shape="box"];242 -> 269[label="",style="solid", color="black", weight=3]; 243[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];243 -> 270[label="",style="solid", color="black", weight=3]; 244[label="primEqInt (Neg Zero) (Neg (Succ vuz2600))",fontsize=16,color="black",shape="box"];244 -> 271[label="",style="solid", color="black", weight=3]; 245[label="primEqInt (Neg Zero) (Neg Zero)",fontsize=16,color="black",shape="box"];245 -> 272[label="",style="solid", color="black", weight=3]; 247 -> 41[label="",style="dashed", color="red", weight=0]; 247[label="vuz20 * vuz21 + vuz22 * vuz23",fontsize=16,color="magenta"];247 -> 273[label="",style="dashed", color="magenta", weight=3]; 247 -> 274[label="",style="dashed", color="magenta", weight=3]; 248 -> 41[label="",style="dashed", color="red", weight=0]; 248[label="vuz20 * vuz21 + vuz22 * vuz23",fontsize=16,color="magenta"];248 -> 275[label="",style="dashed", color="magenta", weight=3]; 248 -> 276[label="",style="dashed", color="magenta", weight=3]; 249 -> 87[label="",style="dashed", color="red", weight=0]; 249[label="vuz23 * vuz21",fontsize=16,color="magenta"];249 -> 277[label="",style="dashed", color="magenta", weight=3]; 249 -> 278[label="",style="dashed", color="magenta", weight=3]; 246[label="vuz29 `quot` reduce2D vuz31 vuz30",fontsize=16,color="black",shape="triangle"];246 -> 279[label="",style="solid", color="black", weight=3]; 254 -> 39[label="",style="dashed", color="red", weight=0]; 254[label="vuz20 * vuz21 + vuz22 * vuz23",fontsize=16,color="magenta"];254 -> 280[label="",style="dashed", color="magenta", weight=3]; 254 -> 281[label="",style="dashed", color="magenta", weight=3]; 255 -> 39[label="",style="dashed", color="red", weight=0]; 255[label="vuz20 * vuz21 + vuz22 * vuz23",fontsize=16,color="magenta"];255 -> 282[label="",style="dashed", color="magenta", weight=3]; 255 -> 283[label="",style="dashed", color="magenta", weight=3]; 253[label="vuz36 `quot` reduce2D vuz37 (vuz23 * vuz21)",fontsize=16,color="burlywood",shape="triangle"];3476[label="vuz36/Integer vuz360",fontsize=10,color="white",style="solid",shape="box"];253 -> 3476[label="",style="solid", color="burlywood", weight=9]; 3476 -> 284[label="",style="solid", color="burlywood", weight=3]; 250 -> 41[label="",style="dashed", color="red", weight=0]; 250[label="vuz20 * vuz21 + vuz22 * vuz23",fontsize=16,color="magenta"];250 -> 285[label="",style="dashed", color="magenta", weight=3]; 250 -> 286[label="",style="dashed", color="magenta", weight=3]; 251 -> 87[label="",style="dashed", color="red", weight=0]; 251[label="vuz23 * vuz21",fontsize=16,color="magenta"];251 -> 287[label="",style="dashed", color="magenta", weight=3]; 251 -> 288[label="",style="dashed", color="magenta", weight=3]; 252 -> 87[label="",style="dashed", color="red", weight=0]; 252[label="vuz23 * vuz21",fontsize=16,color="magenta"];252 -> 289[label="",style="dashed", color="magenta", weight=3]; 252 -> 290[label="",style="dashed", color="magenta", weight=3]; 256 -> 39[label="",style="dashed", color="red", weight=0]; 256[label="vuz20 * vuz21 + vuz22 * vuz23",fontsize=16,color="magenta"];256 -> 291[label="",style="dashed", color="magenta", weight=3]; 256 -> 292[label="",style="dashed", color="magenta", weight=3]; 257[label="vuz23 * vuz21",fontsize=16,color="burlywood",shape="triangle"];3477[label="vuz23/Integer vuz230",fontsize=10,color="white",style="solid",shape="box"];257 -> 3477[label="",style="solid", color="burlywood", weight=9]; 3477 -> 293[label="",style="solid", color="burlywood", weight=3]; 258 -> 184[label="",style="dashed", color="red", weight=0]; 258[label="primMulNat vuz9100 (Succ vuz30100)",fontsize=16,color="magenta"];258 -> 294[label="",style="dashed", color="magenta", weight=3]; 258 -> 295[label="",style="dashed", color="magenta", weight=3]; 259[label="Succ vuz30100",fontsize=16,color="green",shape="box"];260 -> 181[label="",style="dashed", color="red", weight=0]; 260[label="primEqInt vuz28 vuz250",fontsize=16,color="magenta"];260 -> 296[label="",style="dashed", color="magenta", weight=3]; 260 -> 297[label="",style="dashed", color="magenta", weight=3]; 261[label="primEqNat vuz2700 vuz2600",fontsize=16,color="burlywood",shape="triangle"];3478[label="vuz2700/Succ vuz27000",fontsize=10,color="white",style="solid",shape="box"];261 -> 3478[label="",style="solid", color="burlywood", weight=9]; 3478 -> 298[label="",style="solid", color="burlywood", weight=3]; 3479[label="vuz2700/Zero",fontsize=10,color="white",style="solid",shape="box"];261 -> 3479[label="",style="solid", color="burlywood", weight=9]; 3479 -> 299[label="",style="solid", color="burlywood", weight=3]; 262[label="False",fontsize=16,color="green",shape="box"];263[label="False",fontsize=16,color="green",shape="box"];264[label="True",fontsize=16,color="green",shape="box"];265[label="False",fontsize=16,color="green",shape="box"];266[label="True",fontsize=16,color="green",shape="box"];267 -> 261[label="",style="dashed", color="red", weight=0]; 267[label="primEqNat vuz2700 vuz2600",fontsize=16,color="magenta"];267 -> 300[label="",style="dashed", color="magenta", weight=3]; 267 -> 301[label="",style="dashed", color="magenta", weight=3]; 268[label="False",fontsize=16,color="green",shape="box"];269[label="False",fontsize=16,color="green",shape="box"];270[label="True",fontsize=16,color="green",shape="box"];271[label="False",fontsize=16,color="green",shape="box"];272[label="True",fontsize=16,color="green",shape="box"];273 -> 87[label="",style="dashed", color="red", weight=0]; 273[label="vuz22 * vuz23",fontsize=16,color="magenta"];273 -> 302[label="",style="dashed", color="magenta", weight=3]; 273 -> 303[label="",style="dashed", color="magenta", weight=3]; 274 -> 87[label="",style="dashed", color="red", weight=0]; 274[label="vuz20 * vuz21",fontsize=16,color="magenta"];274 -> 304[label="",style="dashed", color="magenta", weight=3]; 274 -> 305[label="",style="dashed", color="magenta", weight=3]; 275 -> 87[label="",style="dashed", color="red", weight=0]; 275[label="vuz22 * vuz23",fontsize=16,color="magenta"];275 -> 306[label="",style="dashed", color="magenta", weight=3]; 275 -> 307[label="",style="dashed", color="magenta", weight=3]; 276 -> 87[label="",style="dashed", color="red", weight=0]; 276[label="vuz20 * vuz21",fontsize=16,color="magenta"];276 -> 308[label="",style="dashed", color="magenta", weight=3]; 276 -> 309[label="",style="dashed", color="magenta", weight=3]; 277[label="vuz21",fontsize=16,color="green",shape="box"];278[label="vuz23",fontsize=16,color="green",shape="box"];279[label="primQuotInt vuz29 (reduce2D vuz31 vuz30)",fontsize=16,color="burlywood",shape="box"];3480[label="vuz29/Pos vuz290",fontsize=10,color="white",style="solid",shape="box"];279 -> 3480[label="",style="solid", color="burlywood", weight=9]; 3480 -> 310[label="",style="solid", color="burlywood", weight=3]; 3481[label="vuz29/Neg vuz290",fontsize=10,color="white",style="solid",shape="box"];279 -> 3481[label="",style="solid", color="burlywood", weight=9]; 3481 -> 311[label="",style="solid", color="burlywood", weight=3]; 280 -> 257[label="",style="dashed", color="red", weight=0]; 280[label="vuz20 * vuz21",fontsize=16,color="magenta"];280 -> 312[label="",style="dashed", color="magenta", weight=3]; 281 -> 257[label="",style="dashed", color="red", weight=0]; 281[label="vuz22 * vuz23",fontsize=16,color="magenta"];281 -> 313[label="",style="dashed", color="magenta", weight=3]; 281 -> 314[label="",style="dashed", color="magenta", weight=3]; 282 -> 257[label="",style="dashed", color="red", weight=0]; 282[label="vuz20 * vuz21",fontsize=16,color="magenta"];282 -> 315[label="",style="dashed", color="magenta", weight=3]; 283 -> 257[label="",style="dashed", color="red", weight=0]; 283[label="vuz22 * vuz23",fontsize=16,color="magenta"];283 -> 316[label="",style="dashed", color="magenta", weight=3]; 283 -> 317[label="",style="dashed", color="magenta", weight=3]; 284[label="Integer vuz360 `quot` reduce2D vuz37 (vuz23 * vuz21)",fontsize=16,color="black",shape="box"];284 -> 318[label="",style="solid", color="black", weight=3]; 285 -> 87[label="",style="dashed", color="red", weight=0]; 285[label="vuz22 * vuz23",fontsize=16,color="magenta"];285 -> 319[label="",style="dashed", color="magenta", weight=3]; 285 -> 320[label="",style="dashed", color="magenta", weight=3]; 286 -> 87[label="",style="dashed", color="red", weight=0]; 286[label="vuz20 * vuz21",fontsize=16,color="magenta"];286 -> 321[label="",style="dashed", color="magenta", weight=3]; 286 -> 322[label="",style="dashed", color="magenta", weight=3]; 287[label="vuz21",fontsize=16,color="green",shape="box"];288[label="vuz23",fontsize=16,color="green",shape="box"];289[label="vuz21",fontsize=16,color="green",shape="box"];290[label="vuz23",fontsize=16,color="green",shape="box"];291 -> 257[label="",style="dashed", color="red", weight=0]; 291[label="vuz20 * vuz21",fontsize=16,color="magenta"];291 -> 323[label="",style="dashed", color="magenta", weight=3]; 292 -> 257[label="",style="dashed", color="red", weight=0]; 292[label="vuz22 * vuz23",fontsize=16,color="magenta"];292 -> 324[label="",style="dashed", color="magenta", weight=3]; 292 -> 325[label="",style="dashed", color="magenta", weight=3]; 293[label="Integer vuz230 * vuz21",fontsize=16,color="burlywood",shape="box"];3482[label="vuz21/Integer vuz210",fontsize=10,color="white",style="solid",shape="box"];293 -> 3482[label="",style="solid", color="burlywood", weight=9]; 3482 -> 326[label="",style="solid", color="burlywood", weight=3]; 294[label="vuz9100",fontsize=16,color="green",shape="box"];295[label="Succ vuz30100",fontsize=16,color="green",shape="box"];296[label="vuz28",fontsize=16,color="green",shape="box"];297[label="vuz250",fontsize=16,color="green",shape="box"];298[label="primEqNat (Succ vuz27000) vuz2600",fontsize=16,color="burlywood",shape="box"];3483[label="vuz2600/Succ vuz26000",fontsize=10,color="white",style="solid",shape="box"];298 -> 3483[label="",style="solid", color="burlywood", weight=9]; 3483 -> 327[label="",style="solid", color="burlywood", weight=3]; 3484[label="vuz2600/Zero",fontsize=10,color="white",style="solid",shape="box"];298 -> 3484[label="",style="solid", color="burlywood", weight=9]; 3484 -> 328[label="",style="solid", color="burlywood", weight=3]; 299[label="primEqNat Zero vuz2600",fontsize=16,color="burlywood",shape="box"];3485[label="vuz2600/Succ vuz26000",fontsize=10,color="white",style="solid",shape="box"];299 -> 3485[label="",style="solid", color="burlywood", weight=9]; 3485 -> 329[label="",style="solid", color="burlywood", weight=3]; 3486[label="vuz2600/Zero",fontsize=10,color="white",style="solid",shape="box"];299 -> 3486[label="",style="solid", color="burlywood", weight=9]; 3486 -> 330[label="",style="solid", color="burlywood", weight=3]; 300[label="vuz2700",fontsize=16,color="green",shape="box"];301[label="vuz2600",fontsize=16,color="green",shape="box"];302[label="vuz23",fontsize=16,color="green",shape="box"];303[label="vuz22",fontsize=16,color="green",shape="box"];304[label="vuz21",fontsize=16,color="green",shape="box"];305[label="vuz20",fontsize=16,color="green",shape="box"];306[label="vuz23",fontsize=16,color="green",shape="box"];307[label="vuz22",fontsize=16,color="green",shape="box"];308[label="vuz21",fontsize=16,color="green",shape="box"];309[label="vuz20",fontsize=16,color="green",shape="box"];310[label="primQuotInt (Pos vuz290) (reduce2D vuz31 vuz30)",fontsize=16,color="black",shape="box"];310 -> 331[label="",style="solid", color="black", weight=3]; 311[label="primQuotInt (Neg vuz290) (reduce2D vuz31 vuz30)",fontsize=16,color="black",shape="box"];311 -> 332[label="",style="solid", color="black", weight=3]; 312[label="vuz20",fontsize=16,color="green",shape="box"];313[label="vuz23",fontsize=16,color="green",shape="box"];314[label="vuz22",fontsize=16,color="green",shape="box"];315[label="vuz20",fontsize=16,color="green",shape="box"];316[label="vuz23",fontsize=16,color="green",shape="box"];317[label="vuz22",fontsize=16,color="green",shape="box"];318 -> 333[label="",style="dashed", color="red", weight=0]; 318[label="Integer vuz360 `quot` gcd vuz37 (vuz23 * vuz21)",fontsize=16,color="magenta"];318 -> 334[label="",style="dashed", color="magenta", weight=3]; 319[label="vuz23",fontsize=16,color="green",shape="box"];320[label="vuz22",fontsize=16,color="green",shape="box"];321[label="vuz21",fontsize=16,color="green",shape="box"];322[label="vuz20",fontsize=16,color="green",shape="box"];323[label="vuz20",fontsize=16,color="green",shape="box"];324[label="vuz23",fontsize=16,color="green",shape="box"];325[label="vuz22",fontsize=16,color="green",shape="box"];326[label="Integer vuz230 * Integer vuz210",fontsize=16,color="black",shape="box"];326 -> 335[label="",style="solid", color="black", weight=3]; 327[label="primEqNat (Succ vuz27000) (Succ vuz26000)",fontsize=16,color="black",shape="box"];327 -> 336[label="",style="solid", color="black", weight=3]; 328[label="primEqNat (Succ vuz27000) Zero",fontsize=16,color="black",shape="box"];328 -> 337[label="",style="solid", color="black", weight=3]; 329[label="primEqNat Zero (Succ vuz26000)",fontsize=16,color="black",shape="box"];329 -> 338[label="",style="solid", color="black", weight=3]; 330[label="primEqNat Zero Zero",fontsize=16,color="black",shape="box"];330 -> 339[label="",style="solid", color="black", weight=3]; 331 -> 430[label="",style="dashed", color="red", weight=0]; 331[label="primQuotInt (Pos vuz290) (gcd vuz31 vuz30)",fontsize=16,color="magenta"];331 -> 431[label="",style="dashed", color="magenta", weight=3]; 332 -> 458[label="",style="dashed", color="red", weight=0]; 332[label="primQuotInt (Neg vuz290) (gcd vuz31 vuz30)",fontsize=16,color="magenta"];332 -> 459[label="",style="dashed", color="magenta", weight=3]; 334 -> 257[label="",style="dashed", color="red", weight=0]; 334[label="vuz23 * vuz21",fontsize=16,color="magenta"];333[label="Integer vuz360 `quot` gcd vuz37 vuz38",fontsize=16,color="black",shape="triangle"];333 -> 342[label="",style="solid", color="black", weight=3]; 335[label="Integer (primMulInt vuz230 vuz210)",fontsize=16,color="green",shape="box"];335 -> 343[label="",style="dashed", color="green", weight=3]; 336 -> 261[label="",style="dashed", color="red", weight=0]; 336[label="primEqNat vuz27000 vuz26000",fontsize=16,color="magenta"];336 -> 344[label="",style="dashed", color="magenta", weight=3]; 336 -> 345[label="",style="dashed", color="magenta", weight=3]; 337[label="False",fontsize=16,color="green",shape="box"];338[label="False",fontsize=16,color="green",shape="box"];339[label="True",fontsize=16,color="green",shape="box"];431[label="gcd vuz31 vuz30",fontsize=16,color="black",shape="triangle"];431 -> 447[label="",style="solid", color="black", weight=3]; 430[label="primQuotInt (Pos vuz290) vuz56",fontsize=16,color="burlywood",shape="triangle"];3487[label="vuz56/Pos vuz560",fontsize=10,color="white",style="solid",shape="box"];430 -> 3487[label="",style="solid", color="burlywood", weight=9]; 3487 -> 448[label="",style="solid", color="burlywood", weight=3]; 3488[label="vuz56/Neg vuz560",fontsize=10,color="white",style="solid",shape="box"];430 -> 3488[label="",style="solid", color="burlywood", weight=9]; 3488 -> 449[label="",style="solid", color="burlywood", weight=3]; 459 -> 431[label="",style="dashed", color="red", weight=0]; 459[label="gcd vuz31 vuz30",fontsize=16,color="magenta"];458[label="primQuotInt (Neg vuz290) vuz59",fontsize=16,color="burlywood",shape="triangle"];3489[label="vuz59/Pos vuz590",fontsize=10,color="white",style="solid",shape="box"];458 -> 3489[label="",style="solid", color="burlywood", weight=9]; 3489 -> 475[label="",style="solid", color="burlywood", weight=3]; 3490[label="vuz59/Neg vuz590",fontsize=10,color="white",style="solid",shape="box"];458 -> 3490[label="",style="solid", color="burlywood", weight=9]; 3490 -> 476[label="",style="solid", color="burlywood", weight=3]; 342[label="Integer vuz360 `quot` gcd3 vuz37 vuz38",fontsize=16,color="black",shape="box"];342 -> 348[label="",style="solid", color="black", weight=3]; 343 -> 106[label="",style="dashed", color="red", weight=0]; 343[label="primMulInt vuz230 vuz210",fontsize=16,color="magenta"];343 -> 349[label="",style="dashed", color="magenta", weight=3]; 343 -> 350[label="",style="dashed", color="magenta", weight=3]; 344[label="vuz27000",fontsize=16,color="green",shape="box"];345[label="vuz26000",fontsize=16,color="green",shape="box"];447[label="gcd3 vuz31 vuz30",fontsize=16,color="black",shape="box"];447 -> 453[label="",style="solid", color="black", weight=3]; 448[label="primQuotInt (Pos vuz290) (Pos vuz560)",fontsize=16,color="burlywood",shape="box"];3491[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];448 -> 3491[label="",style="solid", color="burlywood", weight=9]; 3491 -> 454[label="",style="solid", color="burlywood", weight=3]; 3492[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];448 -> 3492[label="",style="solid", color="burlywood", weight=9]; 3492 -> 455[label="",style="solid", color="burlywood", weight=3]; 449[label="primQuotInt (Pos vuz290) (Neg vuz560)",fontsize=16,color="burlywood",shape="box"];3493[label="vuz560/Succ vuz5600",fontsize=10,color="white",style="solid",shape="box"];449 -> 3493[label="",style="solid", color="burlywood", weight=9]; 3493 -> 456[label="",style="solid", color="burlywood", weight=3]; 3494[label="vuz560/Zero",fontsize=10,color="white",style="solid",shape="box"];449 -> 3494[label="",style="solid", color="burlywood", weight=9]; 3494 -> 457[label="",style="solid", color="burlywood", weight=3]; 475[label="primQuotInt (Neg vuz290) (Pos vuz590)",fontsize=16,color="burlywood",shape="box"];3495[label="vuz590/Succ vuz5900",fontsize=10,color="white",style="solid",shape="box"];475 -> 3495[label="",style="solid", color="burlywood", weight=9]; 3495 -> 479[label="",style="solid", color="burlywood", weight=3]; 3496[label="vuz590/Zero",fontsize=10,color="white",style="solid",shape="box"];475 -> 3496[label="",style="solid", color="burlywood", weight=9]; 3496 -> 480[label="",style="solid", color="burlywood", weight=3]; 476[label="primQuotInt (Neg vuz290) (Neg vuz590)",fontsize=16,color="burlywood",shape="box"];3497[label="vuz590/Succ vuz5900",fontsize=10,color="white",style="solid",shape="box"];476 -> 3497[label="",style="solid", color="burlywood", weight=9]; 3497 -> 481[label="",style="solid", color="burlywood", weight=3]; 3498[label="vuz590/Zero",fontsize=10,color="white",style="solid",shape="box"];476 -> 3498[label="",style="solid", color="burlywood", weight=9]; 3498 -> 482[label="",style="solid", color="burlywood", weight=3]; 348 -> 355[label="",style="dashed", color="red", weight=0]; 348[label="Integer vuz360 `quot` gcd2 (vuz37 == fromInt (Pos Zero)) vuz37 vuz38",fontsize=16,color="magenta"];348 -> 356[label="",style="dashed", color="magenta", weight=3]; 349[label="vuz210",fontsize=16,color="green",shape="box"];350[label="vuz230",fontsize=16,color="green",shape="box"];453 -> 477[label="",style="dashed", color="red", weight=0]; 453[label="gcd2 (vuz31 == fromInt (Pos Zero)) vuz31 vuz30",fontsize=16,color="magenta"];453 -> 478[label="",style="dashed", color="magenta", weight=3]; 454[label="primQuotInt (Pos vuz290) (Pos (Succ vuz5600))",fontsize=16,color="black",shape="box"];454 -> 483[label="",style="solid", color="black", weight=3]; 455[label="primQuotInt (Pos vuz290) (Pos Zero)",fontsize=16,color="black",shape="box"];455 -> 484[label="",style="solid", color="black", weight=3]; 456[label="primQuotInt (Pos vuz290) (Neg (Succ vuz5600))",fontsize=16,color="black",shape="box"];456 -> 485[label="",style="solid", color="black", weight=3]; 457[label="primQuotInt (Pos vuz290) (Neg Zero)",fontsize=16,color="black",shape="box"];457 -> 486[label="",style="solid", color="black", weight=3]; 479[label="primQuotInt (Neg vuz290) (Pos (Succ vuz5900))",fontsize=16,color="black",shape="box"];479 -> 493[label="",style="solid", color="black", weight=3]; 480[label="primQuotInt (Neg vuz290) (Pos Zero)",fontsize=16,color="black",shape="box"];480 -> 494[label="",style="solid", color="black", weight=3]; 481[label="primQuotInt (Neg vuz290) (Neg (Succ vuz5900))",fontsize=16,color="black",shape="box"];481 -> 495[label="",style="solid", color="black", weight=3]; 482[label="primQuotInt (Neg vuz290) (Neg Zero)",fontsize=16,color="black",shape="box"];482 -> 496[label="",style="solid", color="black", weight=3]; 356 -> 12[label="",style="dashed", color="red", weight=0]; 356[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];355[label="Integer vuz360 `quot` gcd2 (vuz37 == vuz43) vuz37 vuz38",fontsize=16,color="burlywood",shape="triangle"];3499[label="vuz37/Integer vuz370",fontsize=10,color="white",style="solid",shape="box"];355 -> 3499[label="",style="solid", color="burlywood", weight=9]; 3499 -> 365[label="",style="solid", color="burlywood", weight=3]; 478 -> 168[label="",style="dashed", color="red", weight=0]; 478[label="vuz31 == fromInt (Pos Zero)",fontsize=16,color="magenta"];478 -> 487[label="",style="dashed", color="magenta", weight=3]; 478 -> 488[label="",style="dashed", color="magenta", weight=3]; 477[label="gcd2 vuz60 vuz31 vuz30",fontsize=16,color="burlywood",shape="triangle"];3500[label="vuz60/False",fontsize=10,color="white",style="solid",shape="box"];477 -> 3500[label="",style="solid", color="burlywood", weight=9]; 3500 -> 489[label="",style="solid", color="burlywood", weight=3]; 3501[label="vuz60/True",fontsize=10,color="white",style="solid",shape="box"];477 -> 3501[label="",style="solid", color="burlywood", weight=9]; 3501 -> 490[label="",style="solid", color="burlywood", weight=3]; 483[label="Pos (primDivNatS vuz290 (Succ vuz5600))",fontsize=16,color="green",shape="box"];483 -> 497[label="",style="dashed", color="green", weight=3]; 484[label="error []",fontsize=16,color="black",shape="triangle"];484 -> 498[label="",style="solid", color="black", weight=3]; 485[label="Neg (primDivNatS vuz290 (Succ vuz5600))",fontsize=16,color="green",shape="box"];485 -> 499[label="",style="dashed", color="green", weight=3]; 486 -> 484[label="",style="dashed", color="red", weight=0]; 486[label="error []",fontsize=16,color="magenta"];493[label="Neg (primDivNatS vuz290 (Succ vuz5900))",fontsize=16,color="green",shape="box"];493 -> 504[label="",style="dashed", color="green", weight=3]; 494 -> 484[label="",style="dashed", color="red", weight=0]; 494[label="error []",fontsize=16,color="magenta"];495[label="Pos (primDivNatS vuz290 (Succ vuz5900))",fontsize=16,color="green",shape="box"];495 -> 505[label="",style="dashed", color="green", weight=3]; 496 -> 484[label="",style="dashed", color="red", weight=0]; 496[label="error []",fontsize=16,color="magenta"];365[label="Integer vuz360 `quot` gcd2 (Integer vuz370 == vuz43) (Integer vuz370) vuz38",fontsize=16,color="burlywood",shape="box"];3502[label="vuz43/Integer vuz430",fontsize=10,color="white",style="solid",shape="box"];365 -> 3502[label="",style="solid", color="burlywood", weight=9]; 3502 -> 370[label="",style="solid", color="burlywood", weight=3]; 487[label="vuz31",fontsize=16,color="green",shape="box"];488 -> 13[label="",style="dashed", color="red", weight=0]; 488[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];489[label="gcd2 False vuz31 vuz30",fontsize=16,color="black",shape="box"];489 -> 500[label="",style="solid", color="black", weight=3]; 490[label="gcd2 True vuz31 vuz30",fontsize=16,color="black",shape="box"];490 -> 501[label="",style="solid", color="black", weight=3]; 497[label="primDivNatS vuz290 (Succ vuz5600)",fontsize=16,color="burlywood",shape="triangle"];3503[label="vuz290/Succ vuz2900",fontsize=10,color="white",style="solid",shape="box"];497 -> 3503[label="",style="solid", color="burlywood", weight=9]; 3503 -> 506[label="",style="solid", color="burlywood", weight=3]; 3504[label="vuz290/Zero",fontsize=10,color="white",style="solid",shape="box"];497 -> 3504[label="",style="solid", color="burlywood", weight=9]; 3504 -> 507[label="",style="solid", color="burlywood", weight=3]; 498[label="error []",fontsize=16,color="red",shape="box"];499 -> 497[label="",style="dashed", color="red", weight=0]; 499[label="primDivNatS vuz290 (Succ vuz5600)",fontsize=16,color="magenta"];499 -> 508[label="",style="dashed", color="magenta", weight=3]; 504 -> 497[label="",style="dashed", color="red", weight=0]; 504[label="primDivNatS vuz290 (Succ vuz5900)",fontsize=16,color="magenta"];504 -> 512[label="",style="dashed", color="magenta", weight=3]; 504 -> 513[label="",style="dashed", color="magenta", weight=3]; 505 -> 497[label="",style="dashed", color="red", weight=0]; 505[label="primDivNatS vuz290 (Succ vuz5900)",fontsize=16,color="magenta"];505 -> 514[label="",style="dashed", color="magenta", weight=3]; 505 -> 515[label="",style="dashed", color="magenta", weight=3]; 370[label="Integer vuz360 `quot` gcd2 (Integer vuz370 == Integer vuz430) (Integer vuz370) vuz38",fontsize=16,color="black",shape="box"];370 -> 377[label="",style="solid", color="black", weight=3]; 500[label="gcd0 vuz31 vuz30",fontsize=16,color="black",shape="triangle"];500 -> 509[label="",style="solid", color="black", weight=3]; 501 -> 510[label="",style="dashed", color="red", weight=0]; 501[label="gcd1 (vuz30 == fromInt (Pos Zero)) vuz31 vuz30",fontsize=16,color="magenta"];501 -> 511[label="",style="dashed", color="magenta", weight=3]; 506[label="primDivNatS (Succ vuz2900) (Succ vuz5600)",fontsize=16,color="black",shape="box"];506 -> 516[label="",style="solid", color="black", weight=3]; 507[label="primDivNatS Zero (Succ vuz5600)",fontsize=16,color="black",shape="box"];507 -> 517[label="",style="solid", color="black", weight=3]; 508[label="vuz5600",fontsize=16,color="green",shape="box"];512[label="vuz290",fontsize=16,color="green",shape="box"];513[label="vuz5900",fontsize=16,color="green",shape="box"];514[label="vuz290",fontsize=16,color="green",shape="box"];515[label="vuz5900",fontsize=16,color="green",shape="box"];377 -> 388[label="",style="dashed", color="red", weight=0]; 377[label="Integer vuz360 `quot` gcd2 (primEqInt vuz370 vuz430) (Integer vuz370) vuz38",fontsize=16,color="magenta"];377 -> 389[label="",style="dashed", color="magenta", weight=3]; 509[label="gcd0Gcd' (abs vuz31) (abs vuz30)",fontsize=16,color="black",shape="box"];509 -> 518[label="",style="solid", color="black", weight=3]; 511 -> 168[label="",style="dashed", color="red", weight=0]; 511[label="vuz30 == fromInt (Pos Zero)",fontsize=16,color="magenta"];511 -> 519[label="",style="dashed", color="magenta", weight=3]; 511 -> 520[label="",style="dashed", color="magenta", weight=3]; 510[label="gcd1 vuz63 vuz31 vuz30",fontsize=16,color="burlywood",shape="triangle"];3505[label="vuz63/False",fontsize=10,color="white",style="solid",shape="box"];510 -> 3505[label="",style="solid", color="burlywood", weight=9]; 3505 -> 521[label="",style="solid", color="burlywood", weight=3]; 3506[label="vuz63/True",fontsize=10,color="white",style="solid",shape="box"];510 -> 3506[label="",style="solid", color="burlywood", weight=9]; 3506 -> 522[label="",style="solid", color="burlywood", weight=3]; 516[label="primDivNatS0 vuz2900 vuz5600 (primGEqNatS vuz2900 vuz5600)",fontsize=16,color="burlywood",shape="box"];3507[label="vuz2900/Succ vuz29000",fontsize=10,color="white",style="solid",shape="box"];516 -> 3507[label="",style="solid", color="burlywood", weight=9]; 3507 -> 525[label="",style="solid", color="burlywood", weight=3]; 3508[label="vuz2900/Zero",fontsize=10,color="white",style="solid",shape="box"];516 -> 3508[label="",style="solid", color="burlywood", weight=9]; 3508 -> 526[label="",style="solid", color="burlywood", weight=3]; 517[label="Zero",fontsize=16,color="green",shape="box"];389 -> 181[label="",style="dashed", color="red", weight=0]; 389[label="primEqInt vuz370 vuz430",fontsize=16,color="magenta"];389 -> 396[label="",style="dashed", color="magenta", weight=3]; 389 -> 397[label="",style="dashed", color="magenta", weight=3]; 388[label="Integer vuz360 `quot` gcd2 vuz48 (Integer vuz370) vuz38",fontsize=16,color="burlywood",shape="triangle"];3509[label="vuz48/False",fontsize=10,color="white",style="solid",shape="box"];388 -> 3509[label="",style="solid", color="burlywood", weight=9]; 3509 -> 398[label="",style="solid", color="burlywood", weight=3]; 3510[label="vuz48/True",fontsize=10,color="white",style="solid",shape="box"];388 -> 3510[label="",style="solid", color="burlywood", weight=9]; 3510 -> 399[label="",style="solid", color="burlywood", weight=3]; 518[label="gcd0Gcd'2 (abs vuz31) (abs vuz30)",fontsize=16,color="black",shape="box"];518 -> 527[label="",style="solid", color="black", weight=3]; 519[label="vuz30",fontsize=16,color="green",shape="box"];520 -> 13[label="",style="dashed", color="red", weight=0]; 520[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];521[label="gcd1 False vuz31 vuz30",fontsize=16,color="black",shape="box"];521 -> 528[label="",style="solid", color="black", weight=3]; 522[label="gcd1 True vuz31 vuz30",fontsize=16,color="black",shape="box"];522 -> 529[label="",style="solid", color="black", weight=3]; 525[label="primDivNatS0 (Succ vuz29000) vuz5600 (primGEqNatS (Succ vuz29000) vuz5600)",fontsize=16,color="burlywood",shape="box"];3511[label="vuz5600/Succ vuz56000",fontsize=10,color="white",style="solid",shape="box"];525 -> 3511[label="",style="solid", color="burlywood", weight=9]; 3511 -> 532[label="",style="solid", color="burlywood", weight=3]; 3512[label="vuz5600/Zero",fontsize=10,color="white",style="solid",shape="box"];525 -> 3512[label="",style="solid", color="burlywood", weight=9]; 3512 -> 533[label="",style="solid", color="burlywood", weight=3]; 526[label="primDivNatS0 Zero vuz5600 (primGEqNatS Zero vuz5600)",fontsize=16,color="burlywood",shape="box"];3513[label="vuz5600/Succ vuz56000",fontsize=10,color="white",style="solid",shape="box"];526 -> 3513[label="",style="solid", color="burlywood", weight=9]; 3513 -> 534[label="",style="solid", color="burlywood", weight=3]; 3514[label="vuz5600/Zero",fontsize=10,color="white",style="solid",shape="box"];526 -> 3514[label="",style="solid", color="burlywood", weight=9]; 3514 -> 535[label="",style="solid", color="burlywood", weight=3]; 396[label="vuz370",fontsize=16,color="green",shape="box"];397[label="vuz430",fontsize=16,color="green",shape="box"];398[label="Integer vuz360 `quot` gcd2 False (Integer vuz370) vuz38",fontsize=16,color="black",shape="box"];398 -> 406[label="",style="solid", color="black", weight=3]; 399[label="Integer vuz360 `quot` gcd2 True (Integer vuz370) vuz38",fontsize=16,color="black",shape="box"];399 -> 407[label="",style="solid", color="black", weight=3]; 527 -> 536[label="",style="dashed", color="red", weight=0]; 527[label="gcd0Gcd'1 (abs vuz30 == fromInt (Pos Zero)) (abs vuz31) (abs vuz30)",fontsize=16,color="magenta"];527 -> 537[label="",style="dashed", color="magenta", weight=3]; 528 -> 500[label="",style="dashed", color="red", weight=0]; 528[label="gcd0 vuz31 vuz30",fontsize=16,color="magenta"];529 -> 484[label="",style="dashed", color="red", weight=0]; 529[label="error []",fontsize=16,color="magenta"];532[label="primDivNatS0 (Succ vuz29000) (Succ vuz56000) (primGEqNatS (Succ vuz29000) (Succ vuz56000))",fontsize=16,color="black",shape="box"];532 -> 538[label="",style="solid", color="black", weight=3]; 533[label="primDivNatS0 (Succ vuz29000) Zero (primGEqNatS (Succ vuz29000) Zero)",fontsize=16,color="black",shape="box"];533 -> 539[label="",style="solid", color="black", weight=3]; 534[label="primDivNatS0 Zero (Succ vuz56000) (primGEqNatS Zero (Succ vuz56000))",fontsize=16,color="black",shape="box"];534 -> 540[label="",style="solid", color="black", weight=3]; 535[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];535 -> 541[label="",style="solid", color="black", weight=3]; 406[label="Integer vuz360 `quot` gcd0 (Integer vuz370) vuz38",fontsize=16,color="black",shape="triangle"];406 -> 416[label="",style="solid", color="black", weight=3]; 407 -> 417[label="",style="dashed", color="red", weight=0]; 407[label="Integer vuz360 `quot` gcd1 (vuz38 == fromInt (Pos Zero)) (Integer vuz370) vuz38",fontsize=16,color="magenta"];407 -> 418[label="",style="dashed", color="magenta", weight=3]; 537 -> 168[label="",style="dashed", color="red", weight=0]; 537[label="abs vuz30 == fromInt (Pos Zero)",fontsize=16,color="magenta"];537 -> 542[label="",style="dashed", color="magenta", weight=3]; 537 -> 543[label="",style="dashed", color="magenta", weight=3]; 536[label="gcd0Gcd'1 vuz66 (abs vuz31) (abs vuz30)",fontsize=16,color="burlywood",shape="triangle"];3515[label="vuz66/False",fontsize=10,color="white",style="solid",shape="box"];536 -> 3515[label="",style="solid", color="burlywood", weight=9]; 3515 -> 544[label="",style="solid", color="burlywood", weight=3]; 3516[label="vuz66/True",fontsize=10,color="white",style="solid",shape="box"];536 -> 3516[label="",style="solid", color="burlywood", weight=9]; 3516 -> 545[label="",style="solid", color="burlywood", weight=3]; 538 -> 1283[label="",style="dashed", color="red", weight=0]; 538[label="primDivNatS0 (Succ vuz29000) (Succ vuz56000) (primGEqNatS vuz29000 vuz56000)",fontsize=16,color="magenta"];538 -> 1284[label="",style="dashed", color="magenta", weight=3]; 538 -> 1285[label="",style="dashed", color="magenta", weight=3]; 538 -> 1286[label="",style="dashed", color="magenta", weight=3]; 538 -> 1287[label="",style="dashed", color="magenta", weight=3]; 539[label="primDivNatS0 (Succ vuz29000) Zero True",fontsize=16,color="black",shape="box"];539 -> 553[label="",style="solid", color="black", weight=3]; 540[label="primDivNatS0 Zero (Succ vuz56000) False",fontsize=16,color="black",shape="box"];540 -> 554[label="",style="solid", color="black", weight=3]; 541[label="primDivNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];541 -> 555[label="",style="solid", color="black", weight=3]; 416[label="Integer vuz360 `quot` gcd0Gcd' (abs (Integer vuz370)) (abs vuz38)",fontsize=16,color="black",shape="box"];416 -> 424[label="",style="solid", color="black", weight=3]; 418 -> 12[label="",style="dashed", color="red", weight=0]; 418[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];417[label="Integer vuz360 `quot` gcd1 (vuz38 == vuz53) (Integer vuz370) vuz38",fontsize=16,color="burlywood",shape="triangle"];3517[label="vuz38/Integer vuz380",fontsize=10,color="white",style="solid",shape="box"];417 -> 3517[label="",style="solid", color="burlywood", weight=9]; 3517 -> 425[label="",style="solid", color="burlywood", weight=3]; 542[label="abs vuz30",fontsize=16,color="black",shape="triangle"];542 -> 556[label="",style="solid", color="black", weight=3]; 543 -> 13[label="",style="dashed", color="red", weight=0]; 543[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];544[label="gcd0Gcd'1 False (abs vuz31) (abs vuz30)",fontsize=16,color="black",shape="box"];544 -> 557[label="",style="solid", color="black", weight=3]; 545[label="gcd0Gcd'1 True (abs vuz31) (abs vuz30)",fontsize=16,color="black",shape="box"];545 -> 558[label="",style="solid", color="black", weight=3]; 1284[label="vuz56000",fontsize=16,color="green",shape="box"];1285[label="vuz29000",fontsize=16,color="green",shape="box"];1286[label="vuz56000",fontsize=16,color="green",shape="box"];1287[label="vuz29000",fontsize=16,color="green",shape="box"];1283[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS vuz99 vuz100)",fontsize=16,color="burlywood",shape="triangle"];3518[label="vuz99/Succ vuz990",fontsize=10,color="white",style="solid",shape="box"];1283 -> 3518[label="",style="solid", color="burlywood", weight=9]; 3518 -> 1324[label="",style="solid", color="burlywood", weight=3]; 3519[label="vuz99/Zero",fontsize=10,color="white",style="solid",shape="box"];1283 -> 3519[label="",style="solid", color="burlywood", weight=9]; 3519 -> 1325[label="",style="solid", color="burlywood", weight=3]; 553[label="Succ (primDivNatS (primMinusNatS (Succ vuz29000) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];553 -> 566[label="",style="dashed", color="green", weight=3]; 554[label="Zero",fontsize=16,color="green",shape="box"];555[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];555 -> 567[label="",style="dashed", color="green", weight=3]; 424[label="Integer vuz360 `quot` gcd0Gcd'2 (abs (Integer vuz370)) (abs vuz38)",fontsize=16,color="black",shape="box"];424 -> 491[label="",style="solid", color="black", weight=3]; 425[label="Integer vuz360 `quot` gcd1 (Integer vuz380 == vuz53) (Integer vuz370) (Integer vuz380)",fontsize=16,color="burlywood",shape="box"];3520[label="vuz53/Integer vuz530",fontsize=10,color="white",style="solid",shape="box"];425 -> 3520[label="",style="solid", color="burlywood", weight=9]; 3520 -> 492[label="",style="solid", color="burlywood", weight=3]; 556[label="absReal vuz30",fontsize=16,color="black",shape="box"];556 -> 568[label="",style="solid", color="black", weight=3]; 557 -> 569[label="",style="dashed", color="red", weight=0]; 557[label="gcd0Gcd'0 (abs vuz31) (abs vuz30)",fontsize=16,color="magenta"];557 -> 570[label="",style="dashed", color="magenta", weight=3]; 557 -> 571[label="",style="dashed", color="magenta", weight=3]; 558 -> 542[label="",style="dashed", color="red", weight=0]; 558[label="abs vuz31",fontsize=16,color="magenta"];558 -> 572[label="",style="dashed", color="magenta", weight=3]; 1324[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS (Succ vuz990) vuz100)",fontsize=16,color="burlywood",shape="box"];3521[label="vuz100/Succ vuz1000",fontsize=10,color="white",style="solid",shape="box"];1324 -> 3521[label="",style="solid", color="burlywood", weight=9]; 3521 -> 1364[label="",style="solid", color="burlywood", weight=3]; 3522[label="vuz100/Zero",fontsize=10,color="white",style="solid",shape="box"];1324 -> 3522[label="",style="solid", color="burlywood", weight=9]; 3522 -> 1365[label="",style="solid", color="burlywood", weight=3]; 1325[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS Zero vuz100)",fontsize=16,color="burlywood",shape="box"];3523[label="vuz100/Succ vuz1000",fontsize=10,color="white",style="solid",shape="box"];1325 -> 3523[label="",style="solid", color="burlywood", weight=9]; 3523 -> 1366[label="",style="solid", color="burlywood", weight=3]; 3524[label="vuz100/Zero",fontsize=10,color="white",style="solid",shape="box"];1325 -> 3524[label="",style="solid", color="burlywood", weight=9]; 3524 -> 1367[label="",style="solid", color="burlywood", weight=3]; 566 -> 497[label="",style="dashed", color="red", weight=0]; 566[label="primDivNatS (primMinusNatS (Succ vuz29000) Zero) (Succ Zero)",fontsize=16,color="magenta"];566 -> 577[label="",style="dashed", color="magenta", weight=3]; 566 -> 578[label="",style="dashed", color="magenta", weight=3]; 567 -> 497[label="",style="dashed", color="red", weight=0]; 567[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];567 -> 579[label="",style="dashed", color="magenta", weight=3]; 567 -> 580[label="",style="dashed", color="magenta", weight=3]; 491 -> 502[label="",style="dashed", color="red", weight=0]; 491[label="Integer vuz360 `quot` gcd0Gcd'1 (abs vuz38 == fromInt (Pos Zero)) (abs (Integer vuz370)) (abs vuz38)",fontsize=16,color="magenta"];491 -> 503[label="",style="dashed", color="magenta", weight=3]; 492[label="Integer vuz360 `quot` gcd1 (Integer vuz380 == Integer vuz530) (Integer vuz370) (Integer vuz380)",fontsize=16,color="black",shape="box"];492 -> 523[label="",style="solid", color="black", weight=3]; 568[label="absReal2 vuz30",fontsize=16,color="black",shape="box"];568 -> 581[label="",style="solid", color="black", weight=3]; 570 -> 542[label="",style="dashed", color="red", weight=0]; 570[label="abs vuz30",fontsize=16,color="magenta"];571 -> 542[label="",style="dashed", color="red", weight=0]; 571[label="abs vuz31",fontsize=16,color="magenta"];571 -> 582[label="",style="dashed", color="magenta", weight=3]; 569[label="gcd0Gcd'0 vuz69 vuz68",fontsize=16,color="black",shape="triangle"];569 -> 583[label="",style="solid", color="black", weight=3]; 572[label="vuz31",fontsize=16,color="green",shape="box"];1364[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS (Succ vuz990) (Succ vuz1000))",fontsize=16,color="black",shape="box"];1364 -> 1401[label="",style="solid", color="black", weight=3]; 1365[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS (Succ vuz990) Zero)",fontsize=16,color="black",shape="box"];1365 -> 1402[label="",style="solid", color="black", weight=3]; 1366[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS Zero (Succ vuz1000))",fontsize=16,color="black",shape="box"];1366 -> 1403[label="",style="solid", color="black", weight=3]; 1367[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];1367 -> 1404[label="",style="solid", color="black", weight=3]; 577[label="primMinusNatS (Succ vuz29000) Zero",fontsize=16,color="black",shape="triangle"];577 -> 592[label="",style="solid", color="black", weight=3]; 578[label="Zero",fontsize=16,color="green",shape="box"];579[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="triangle"];579 -> 593[label="",style="solid", color="black", weight=3]; 580[label="Zero",fontsize=16,color="green",shape="box"];503 -> 12[label="",style="dashed", color="red", weight=0]; 503[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];502[label="Integer vuz360 `quot` gcd0Gcd'1 (abs vuz38 == vuz62) (abs (Integer vuz370)) (abs vuz38)",fontsize=16,color="black",shape="triangle"];502 -> 524[label="",style="solid", color="black", weight=3]; 523 -> 530[label="",style="dashed", color="red", weight=0]; 523[label="Integer vuz360 `quot` gcd1 (primEqInt vuz380 vuz530) (Integer vuz370) (Integer vuz380)",fontsize=16,color="magenta"];523 -> 531[label="",style="dashed", color="magenta", weight=3]; 581 -> 594[label="",style="dashed", color="red", weight=0]; 581[label="absReal1 vuz30 (vuz30 >= fromInt (Pos Zero))",fontsize=16,color="magenta"];581 -> 595[label="",style="dashed", color="magenta", weight=3]; 582[label="vuz31",fontsize=16,color="green",shape="box"];583[label="gcd0Gcd' vuz68 (vuz69 `rem` vuz68)",fontsize=16,color="black",shape="box"];583 -> 596[label="",style="solid", color="black", weight=3]; 1401 -> 1283[label="",style="dashed", color="red", weight=0]; 1401[label="primDivNatS0 (Succ vuz97) (Succ vuz98) (primGEqNatS vuz990 vuz1000)",fontsize=16,color="magenta"];1401 -> 1407[label="",style="dashed", color="magenta", weight=3]; 1401 -> 1408[label="",style="dashed", color="magenta", weight=3]; 1402[label="primDivNatS0 (Succ vuz97) (Succ vuz98) True",fontsize=16,color="black",shape="triangle"];1402 -> 1409[label="",style="solid", color="black", weight=3]; 1403[label="primDivNatS0 (Succ vuz97) (Succ vuz98) False",fontsize=16,color="black",shape="box"];1403 -> 1410[label="",style="solid", color="black", weight=3]; 1404 -> 1402[label="",style="dashed", color="red", weight=0]; 1404[label="primDivNatS0 (Succ vuz97) (Succ vuz98) True",fontsize=16,color="magenta"];592[label="Succ vuz29000",fontsize=16,color="green",shape="box"];593[label="Zero",fontsize=16,color="green",shape="box"];524[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal vuz38 == vuz62) (abs (Integer vuz370)) (absReal vuz38)",fontsize=16,color="black",shape="box"];524 -> 546[label="",style="solid", color="black", weight=3]; 531 -> 181[label="",style="dashed", color="red", weight=0]; 531[label="primEqInt vuz380 vuz530",fontsize=16,color="magenta"];531 -> 547[label="",style="dashed", color="magenta", weight=3]; 531 -> 548[label="",style="dashed", color="magenta", weight=3]; 530[label="Integer vuz360 `quot` gcd1 vuz65 (Integer vuz370) (Integer vuz380)",fontsize=16,color="burlywood",shape="triangle"];3525[label="vuz65/False",fontsize=10,color="white",style="solid",shape="box"];530 -> 3525[label="",style="solid", color="burlywood", weight=9]; 3525 -> 549[label="",style="solid", color="burlywood", weight=3]; 3526[label="vuz65/True",fontsize=10,color="white",style="solid",shape="box"];530 -> 3526[label="",style="solid", color="burlywood", weight=9]; 3526 -> 550[label="",style="solid", color="burlywood", weight=3]; 595 -> 13[label="",style="dashed", color="red", weight=0]; 595[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];594[label="absReal1 vuz30 (vuz30 >= vuz72)",fontsize=16,color="black",shape="triangle"];594 -> 603[label="",style="solid", color="black", weight=3]; 596[label="gcd0Gcd'2 vuz68 (vuz69 `rem` vuz68)",fontsize=16,color="black",shape="box"];596 -> 607[label="",style="solid", color="black", weight=3]; 1407[label="vuz1000",fontsize=16,color="green",shape="box"];1408[label="vuz990",fontsize=16,color="green",shape="box"];1409[label="Succ (primDivNatS (primMinusNatS (Succ vuz97) (Succ vuz98)) (Succ (Succ vuz98)))",fontsize=16,color="green",shape="box"];1409 -> 1413[label="",style="dashed", color="green", weight=3]; 1410[label="Zero",fontsize=16,color="green",shape="box"];546[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal2 vuz38 == vuz62) (abs (Integer vuz370)) (absReal2 vuz38)",fontsize=16,color="black",shape="box"];546 -> 559[label="",style="solid", color="black", weight=3]; 547[label="vuz380",fontsize=16,color="green",shape="box"];548[label="vuz530",fontsize=16,color="green",shape="box"];549[label="Integer vuz360 `quot` gcd1 False (Integer vuz370) (Integer vuz380)",fontsize=16,color="black",shape="box"];549 -> 560[label="",style="solid", color="black", weight=3]; 550[label="Integer vuz360 `quot` gcd1 True (Integer vuz370) (Integer vuz380)",fontsize=16,color="black",shape="box"];550 -> 561[label="",style="solid", color="black", weight=3]; 603[label="absReal1 vuz30 (compare vuz30 vuz72 /= LT)",fontsize=16,color="black",shape="box"];603 -> 616[label="",style="solid", color="black", weight=3]; 607 -> 618[label="",style="dashed", color="red", weight=0]; 607[label="gcd0Gcd'1 (vuz69 `rem` vuz68 == fromInt (Pos Zero)) vuz68 (vuz69 `rem` vuz68)",fontsize=16,color="magenta"];607 -> 619[label="",style="dashed", color="magenta", weight=3]; 1413 -> 497[label="",style="dashed", color="red", weight=0]; 1413[label="primDivNatS (primMinusNatS (Succ vuz97) (Succ vuz98)) (Succ (Succ vuz98))",fontsize=16,color="magenta"];1413 -> 1447[label="",style="dashed", color="magenta", weight=3]; 1413 -> 1448[label="",style="dashed", color="magenta", weight=3]; 559 -> 584[label="",style="dashed", color="red", weight=0]; 559[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 vuz38 (vuz38 >= fromInt (Pos Zero)) == vuz62) (abs (Integer vuz370)) (absReal1 vuz38 (vuz38 >= fromInt (Pos Zero)))",fontsize=16,color="magenta"];559 -> 585[label="",style="dashed", color="magenta", weight=3]; 559 -> 586[label="",style="dashed", color="magenta", weight=3]; 560 -> 406[label="",style="dashed", color="red", weight=0]; 560[label="Integer vuz360 `quot` gcd0 (Integer vuz370) (Integer vuz380)",fontsize=16,color="magenta"];560 -> 604[label="",style="dashed", color="magenta", weight=3]; 561[label="Integer vuz360 `quot` error []",fontsize=16,color="black",shape="box"];561 -> 605[label="",style="solid", color="black", weight=3]; 616[label="absReal1 vuz30 (not (compare vuz30 vuz72 == LT))",fontsize=16,color="black",shape="box"];616 -> 627[label="",style="solid", color="black", weight=3]; 619 -> 168[label="",style="dashed", color="red", weight=0]; 619[label="vuz69 `rem` vuz68 == fromInt (Pos Zero)",fontsize=16,color="magenta"];619 -> 628[label="",style="dashed", color="magenta", weight=3]; 619 -> 629[label="",style="dashed", color="magenta", weight=3]; 618[label="gcd0Gcd'1 vuz73 vuz68 (vuz69 `rem` vuz68)",fontsize=16,color="burlywood",shape="triangle"];3527[label="vuz73/False",fontsize=10,color="white",style="solid",shape="box"];618 -> 3527[label="",style="solid", color="burlywood", weight=9]; 3527 -> 630[label="",style="solid", color="burlywood", weight=3]; 3528[label="vuz73/True",fontsize=10,color="white",style="solid",shape="box"];618 -> 3528[label="",style="solid", color="burlywood", weight=9]; 3528 -> 631[label="",style="solid", color="burlywood", weight=3]; 1447 -> 1022[label="",style="dashed", color="red", weight=0]; 1447[label="primMinusNatS (Succ vuz97) (Succ vuz98)",fontsize=16,color="magenta"];1447 -> 1489[label="",style="dashed", color="magenta", weight=3]; 1447 -> 1490[label="",style="dashed", color="magenta", weight=3]; 1448[label="Succ vuz98",fontsize=16,color="green",shape="box"];585 -> 12[label="",style="dashed", color="red", weight=0]; 585[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];586 -> 12[label="",style="dashed", color="red", weight=0]; 586[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];584[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 vuz38 (vuz38 >= vuz71) == vuz62) (abs (Integer vuz370)) (absReal1 vuz38 (vuz38 >= vuz70))",fontsize=16,color="black",shape="triangle"];584 -> 606[label="",style="solid", color="black", weight=3]; 604[label="Integer vuz380",fontsize=16,color="green",shape="box"];605[label="error []",fontsize=16,color="red",shape="box"];627[label="absReal1 vuz30 (not (primCmpInt vuz30 vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3529[label="vuz30/Pos vuz300",fontsize=10,color="white",style="solid",shape="box"];627 -> 3529[label="",style="solid", color="burlywood", weight=9]; 3529 -> 640[label="",style="solid", color="burlywood", weight=3]; 3530[label="vuz30/Neg vuz300",fontsize=10,color="white",style="solid",shape="box"];627 -> 3530[label="",style="solid", color="burlywood", weight=9]; 3530 -> 641[label="",style="solid", color="burlywood", weight=3]; 628[label="vuz69 `rem` vuz68",fontsize=16,color="black",shape="triangle"];628 -> 642[label="",style="solid", color="black", weight=3]; 629 -> 13[label="",style="dashed", color="red", weight=0]; 629[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];630[label="gcd0Gcd'1 False vuz68 (vuz69 `rem` vuz68)",fontsize=16,color="black",shape="box"];630 -> 643[label="",style="solid", color="black", weight=3]; 631[label="gcd0Gcd'1 True vuz68 (vuz69 `rem` vuz68)",fontsize=16,color="black",shape="box"];631 -> 644[label="",style="solid", color="black", weight=3]; 1489[label="Succ vuz97",fontsize=16,color="green",shape="box"];1490[label="Succ vuz98",fontsize=16,color="green",shape="box"];1022[label="primMinusNatS vuz88 vuz89",fontsize=16,color="burlywood",shape="triangle"];3531[label="vuz88/Succ vuz880",fontsize=10,color="white",style="solid",shape="box"];1022 -> 3531[label="",style="solid", color="burlywood", weight=9]; 3531 -> 1050[label="",style="solid", color="burlywood", weight=3]; 3532[label="vuz88/Zero",fontsize=10,color="white",style="solid",shape="box"];1022 -> 3532[label="",style="solid", color="burlywood", weight=9]; 3532 -> 1051[label="",style="solid", color="burlywood", weight=3]; 606[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 vuz38 (compare vuz38 vuz71 /= LT) == vuz62) (abs (Integer vuz370)) (absReal1 vuz38 (compare vuz38 vuz71 /= LT))",fontsize=16,color="black",shape="box"];606 -> 617[label="",style="solid", color="black", weight=3]; 640[label="absReal1 (Pos vuz300) (not (primCmpInt (Pos vuz300) vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3533[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];640 -> 3533[label="",style="solid", color="burlywood", weight=9]; 3533 -> 654[label="",style="solid", color="burlywood", weight=3]; 3534[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];640 -> 3534[label="",style="solid", color="burlywood", weight=9]; 3534 -> 655[label="",style="solid", color="burlywood", weight=3]; 641[label="absReal1 (Neg vuz300) (not (primCmpInt (Neg vuz300) vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3535[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];641 -> 3535[label="",style="solid", color="burlywood", weight=9]; 3535 -> 656[label="",style="solid", color="burlywood", weight=3]; 3536[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];641 -> 3536[label="",style="solid", color="burlywood", weight=9]; 3536 -> 657[label="",style="solid", color="burlywood", weight=3]; 642[label="primRemInt vuz69 vuz68",fontsize=16,color="burlywood",shape="triangle"];3537[label="vuz69/Pos vuz690",fontsize=10,color="white",style="solid",shape="box"];642 -> 3537[label="",style="solid", color="burlywood", weight=9]; 3537 -> 658[label="",style="solid", color="burlywood", weight=3]; 3538[label="vuz69/Neg vuz690",fontsize=10,color="white",style="solid",shape="box"];642 -> 3538[label="",style="solid", color="burlywood", weight=9]; 3538 -> 659[label="",style="solid", color="burlywood", weight=3]; 643 -> 569[label="",style="dashed", color="red", weight=0]; 643[label="gcd0Gcd'0 vuz68 (vuz69 `rem` vuz68)",fontsize=16,color="magenta"];643 -> 660[label="",style="dashed", color="magenta", weight=3]; 643 -> 661[label="",style="dashed", color="magenta", weight=3]; 644[label="vuz68",fontsize=16,color="green",shape="box"];1050[label="primMinusNatS (Succ vuz880) vuz89",fontsize=16,color="burlywood",shape="box"];3539[label="vuz89/Succ vuz890",fontsize=10,color="white",style="solid",shape="box"];1050 -> 3539[label="",style="solid", color="burlywood", weight=9]; 3539 -> 1060[label="",style="solid", color="burlywood", weight=3]; 3540[label="vuz89/Zero",fontsize=10,color="white",style="solid",shape="box"];1050 -> 3540[label="",style="solid", color="burlywood", weight=9]; 3540 -> 1061[label="",style="solid", color="burlywood", weight=3]; 1051[label="primMinusNatS Zero vuz89",fontsize=16,color="burlywood",shape="box"];3541[label="vuz89/Succ vuz890",fontsize=10,color="white",style="solid",shape="box"];1051 -> 3541[label="",style="solid", color="burlywood", weight=9]; 3541 -> 1062[label="",style="solid", color="burlywood", weight=3]; 3542[label="vuz89/Zero",fontsize=10,color="white",style="solid",shape="box"];1051 -> 3542[label="",style="solid", color="burlywood", weight=9]; 3542 -> 1063[label="",style="solid", color="burlywood", weight=3]; 617[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 vuz38 (not (compare vuz38 vuz71 == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 vuz38 (not (compare vuz38 vuz71 == LT)))",fontsize=16,color="burlywood",shape="box"];3543[label="vuz38/Integer vuz380",fontsize=10,color="white",style="solid",shape="box"];617 -> 3543[label="",style="solid", color="burlywood", weight=9]; 3543 -> 632[label="",style="solid", color="burlywood", weight=3]; 654[label="absReal1 (Pos (Succ vuz3000)) (not (primCmpInt (Pos (Succ vuz3000)) vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3544[label="vuz72/Pos vuz720",fontsize=10,color="white",style="solid",shape="box"];654 -> 3544[label="",style="solid", color="burlywood", weight=9]; 3544 -> 670[label="",style="solid", color="burlywood", weight=3]; 3545[label="vuz72/Neg vuz720",fontsize=10,color="white",style="solid",shape="box"];654 -> 3545[label="",style="solid", color="burlywood", weight=9]; 3545 -> 671[label="",style="solid", color="burlywood", weight=3]; 655[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3546[label="vuz72/Pos vuz720",fontsize=10,color="white",style="solid",shape="box"];655 -> 3546[label="",style="solid", color="burlywood", weight=9]; 3546 -> 672[label="",style="solid", color="burlywood", weight=3]; 3547[label="vuz72/Neg vuz720",fontsize=10,color="white",style="solid",shape="box"];655 -> 3547[label="",style="solid", color="burlywood", weight=9]; 3547 -> 673[label="",style="solid", color="burlywood", weight=3]; 656[label="absReal1 (Neg (Succ vuz3000)) (not (primCmpInt (Neg (Succ vuz3000)) vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3548[label="vuz72/Pos vuz720",fontsize=10,color="white",style="solid",shape="box"];656 -> 3548[label="",style="solid", color="burlywood", weight=9]; 3548 -> 674[label="",style="solid", color="burlywood", weight=3]; 3549[label="vuz72/Neg vuz720",fontsize=10,color="white",style="solid",shape="box"];656 -> 3549[label="",style="solid", color="burlywood", weight=9]; 3549 -> 675[label="",style="solid", color="burlywood", weight=3]; 657[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) vuz72 == LT))",fontsize=16,color="burlywood",shape="box"];3550[label="vuz72/Pos vuz720",fontsize=10,color="white",style="solid",shape="box"];657 -> 3550[label="",style="solid", color="burlywood", weight=9]; 3550 -> 676[label="",style="solid", color="burlywood", weight=3]; 3551[label="vuz72/Neg vuz720",fontsize=10,color="white",style="solid",shape="box"];657 -> 3551[label="",style="solid", color="burlywood", weight=9]; 3551 -> 677[label="",style="solid", color="burlywood", weight=3]; 658[label="primRemInt (Pos vuz690) vuz68",fontsize=16,color="burlywood",shape="box"];3552[label="vuz68/Pos vuz680",fontsize=10,color="white",style="solid",shape="box"];658 -> 3552[label="",style="solid", color="burlywood", weight=9]; 3552 -> 678[label="",style="solid", color="burlywood", weight=3]; 3553[label="vuz68/Neg vuz680",fontsize=10,color="white",style="solid",shape="box"];658 -> 3553[label="",style="solid", color="burlywood", weight=9]; 3553 -> 679[label="",style="solid", color="burlywood", weight=3]; 659[label="primRemInt (Neg vuz690) vuz68",fontsize=16,color="burlywood",shape="box"];3554[label="vuz68/Pos vuz680",fontsize=10,color="white",style="solid",shape="box"];659 -> 3554[label="",style="solid", color="burlywood", weight=9]; 3554 -> 680[label="",style="solid", color="burlywood", weight=3]; 3555[label="vuz68/Neg vuz680",fontsize=10,color="white",style="solid",shape="box"];659 -> 3555[label="",style="solid", color="burlywood", weight=9]; 3555 -> 681[label="",style="solid", color="burlywood", weight=3]; 660 -> 628[label="",style="dashed", color="red", weight=0]; 660[label="vuz69 `rem` vuz68",fontsize=16,color="magenta"];661[label="vuz68",fontsize=16,color="green",shape="box"];1060[label="primMinusNatS (Succ vuz880) (Succ vuz890)",fontsize=16,color="black",shape="box"];1060 -> 1111[label="",style="solid", color="black", weight=3]; 1061[label="primMinusNatS (Succ vuz880) Zero",fontsize=16,color="black",shape="box"];1061 -> 1112[label="",style="solid", color="black", weight=3]; 1062[label="primMinusNatS Zero (Succ vuz890)",fontsize=16,color="black",shape="box"];1062 -> 1113[label="",style="solid", color="black", weight=3]; 1063[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];1063 -> 1114[label="",style="solid", color="black", weight=3]; 632[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer vuz380) (not (compare (Integer vuz380) vuz71 == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer vuz380) (not (compare (Integer vuz380) vuz71 == LT)))",fontsize=16,color="burlywood",shape="box"];3556[label="vuz71/Integer vuz710",fontsize=10,color="white",style="solid",shape="box"];632 -> 3556[label="",style="solid", color="burlywood", weight=9]; 3556 -> 645[label="",style="solid", color="burlywood", weight=3]; 670[label="absReal1 (Pos (Succ vuz3000)) (not (primCmpInt (Pos (Succ vuz3000)) (Pos vuz720) == LT))",fontsize=16,color="black",shape="box"];670 -> 691[label="",style="solid", color="black", weight=3]; 671[label="absReal1 (Pos (Succ vuz3000)) (not (primCmpInt (Pos (Succ vuz3000)) (Neg vuz720) == LT))",fontsize=16,color="black",shape="box"];671 -> 692[label="",style="solid", color="black", weight=3]; 672[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Pos vuz720) == LT))",fontsize=16,color="burlywood",shape="box"];3557[label="vuz720/Succ vuz7200",fontsize=10,color="white",style="solid",shape="box"];672 -> 3557[label="",style="solid", color="burlywood", weight=9]; 3557 -> 693[label="",style="solid", color="burlywood", weight=3]; 3558[label="vuz720/Zero",fontsize=10,color="white",style="solid",shape="box"];672 -> 3558[label="",style="solid", color="burlywood", weight=9]; 3558 -> 694[label="",style="solid", color="burlywood", weight=3]; 673[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Neg vuz720) == LT))",fontsize=16,color="burlywood",shape="box"];3559[label="vuz720/Succ vuz7200",fontsize=10,color="white",style="solid",shape="box"];673 -> 3559[label="",style="solid", color="burlywood", weight=9]; 3559 -> 695[label="",style="solid", color="burlywood", weight=3]; 3560[label="vuz720/Zero",fontsize=10,color="white",style="solid",shape="box"];673 -> 3560[label="",style="solid", color="burlywood", weight=9]; 3560 -> 696[label="",style="solid", color="burlywood", weight=3]; 674[label="absReal1 (Neg (Succ vuz3000)) (not (primCmpInt (Neg (Succ vuz3000)) (Pos vuz720) == LT))",fontsize=16,color="black",shape="box"];674 -> 697[label="",style="solid", color="black", weight=3]; 675[label="absReal1 (Neg (Succ vuz3000)) (not (primCmpInt (Neg (Succ vuz3000)) (Neg vuz720) == LT))",fontsize=16,color="black",shape="box"];675 -> 698[label="",style="solid", color="black", weight=3]; 676[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Pos vuz720) == LT))",fontsize=16,color="burlywood",shape="box"];3561[label="vuz720/Succ vuz7200",fontsize=10,color="white",style="solid",shape="box"];676 -> 3561[label="",style="solid", color="burlywood", weight=9]; 3561 -> 699[label="",style="solid", color="burlywood", weight=3]; 3562[label="vuz720/Zero",fontsize=10,color="white",style="solid",shape="box"];676 -> 3562[label="",style="solid", color="burlywood", weight=9]; 3562 -> 700[label="",style="solid", color="burlywood", weight=3]; 677[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Neg vuz720) == LT))",fontsize=16,color="burlywood",shape="box"];3563[label="vuz720/Succ vuz7200",fontsize=10,color="white",style="solid",shape="box"];677 -> 3563[label="",style="solid", color="burlywood", weight=9]; 3563 -> 701[label="",style="solid", color="burlywood", weight=3]; 3564[label="vuz720/Zero",fontsize=10,color="white",style="solid",shape="box"];677 -> 3564[label="",style="solid", color="burlywood", weight=9]; 3564 -> 702[label="",style="solid", color="burlywood", weight=3]; 678[label="primRemInt (Pos vuz690) (Pos vuz680)",fontsize=16,color="burlywood",shape="box"];3565[label="vuz680/Succ vuz6800",fontsize=10,color="white",style="solid",shape="box"];678 -> 3565[label="",style="solid", color="burlywood", weight=9]; 3565 -> 703[label="",style="solid", color="burlywood", weight=3]; 3566[label="vuz680/Zero",fontsize=10,color="white",style="solid",shape="box"];678 -> 3566[label="",style="solid", color="burlywood", weight=9]; 3566 -> 704[label="",style="solid", color="burlywood", weight=3]; 679[label="primRemInt (Pos vuz690) (Neg vuz680)",fontsize=16,color="burlywood",shape="box"];3567[label="vuz680/Succ vuz6800",fontsize=10,color="white",style="solid",shape="box"];679 -> 3567[label="",style="solid", color="burlywood", weight=9]; 3567 -> 705[label="",style="solid", color="burlywood", weight=3]; 3568[label="vuz680/Zero",fontsize=10,color="white",style="solid",shape="box"];679 -> 3568[label="",style="solid", color="burlywood", weight=9]; 3568 -> 706[label="",style="solid", color="burlywood", weight=3]; 680[label="primRemInt (Neg vuz690) (Pos vuz680)",fontsize=16,color="burlywood",shape="box"];3569[label="vuz680/Succ vuz6800",fontsize=10,color="white",style="solid",shape="box"];680 -> 3569[label="",style="solid", color="burlywood", weight=9]; 3569 -> 707[label="",style="solid", color="burlywood", weight=3]; 3570[label="vuz680/Zero",fontsize=10,color="white",style="solid",shape="box"];680 -> 3570[label="",style="solid", color="burlywood", weight=9]; 3570 -> 708[label="",style="solid", color="burlywood", weight=3]; 681[label="primRemInt (Neg vuz690) (Neg vuz680)",fontsize=16,color="burlywood",shape="box"];3571[label="vuz680/Succ vuz6800",fontsize=10,color="white",style="solid",shape="box"];681 -> 3571[label="",style="solid", color="burlywood", weight=9]; 3571 -> 709[label="",style="solid", color="burlywood", weight=3]; 3572[label="vuz680/Zero",fontsize=10,color="white",style="solid",shape="box"];681 -> 3572[label="",style="solid", color="burlywood", weight=9]; 3572 -> 710[label="",style="solid", color="burlywood", weight=3]; 1111 -> 1022[label="",style="dashed", color="red", weight=0]; 1111[label="primMinusNatS vuz880 vuz890",fontsize=16,color="magenta"];1111 -> 1165[label="",style="dashed", color="magenta", weight=3]; 1111 -> 1166[label="",style="dashed", color="magenta", weight=3]; 1112[label="Succ vuz880",fontsize=16,color="green",shape="box"];1113[label="Zero",fontsize=16,color="green",shape="box"];1114[label="Zero",fontsize=16,color="green",shape="box"];645[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer vuz380) (not (compare (Integer vuz380) (Integer vuz710) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer vuz380) (not (compare (Integer vuz380) (Integer vuz710) == LT)))",fontsize=16,color="black",shape="box"];645 -> 662[label="",style="solid", color="black", weight=3]; 691 -> 1467[label="",style="dashed", color="red", weight=0]; 691[label="absReal1 (Pos (Succ vuz3000)) (not (primCmpNat (Succ vuz3000) vuz720 == LT))",fontsize=16,color="magenta"];691 -> 1468[label="",style="dashed", color="magenta", weight=3]; 691 -> 1469[label="",style="dashed", color="magenta", weight=3]; 691 -> 1470[label="",style="dashed", color="magenta", weight=3]; 692[label="absReal1 (Pos (Succ vuz3000)) (not (GT == LT))",fontsize=16,color="black",shape="triangle"];692 -> 725[label="",style="solid", color="black", weight=3]; 693[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Pos (Succ vuz7200)) == LT))",fontsize=16,color="black",shape="box"];693 -> 726[label="",style="solid", color="black", weight=3]; 694[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];694 -> 727[label="",style="solid", color="black", weight=3]; 695[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Neg (Succ vuz7200)) == LT))",fontsize=16,color="black",shape="box"];695 -> 728[label="",style="solid", color="black", weight=3]; 696[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))",fontsize=16,color="black",shape="box"];696 -> 729[label="",style="solid", color="black", weight=3]; 697[label="absReal1 (Neg (Succ vuz3000)) (not (LT == LT))",fontsize=16,color="black",shape="triangle"];697 -> 730[label="",style="solid", color="black", weight=3]; 698 -> 1882[label="",style="dashed", color="red", weight=0]; 698[label="absReal1 (Neg (Succ vuz3000)) (not (primCmpNat vuz720 (Succ vuz3000) == LT))",fontsize=16,color="magenta"];698 -> 1883[label="",style="dashed", color="magenta", weight=3]; 698 -> 1884[label="",style="dashed", color="magenta", weight=3]; 698 -> 1885[label="",style="dashed", color="magenta", weight=3]; 699[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Pos (Succ vuz7200)) == LT))",fontsize=16,color="black",shape="box"];699 -> 733[label="",style="solid", color="black", weight=3]; 700[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];700 -> 734[label="",style="solid", color="black", weight=3]; 701[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Neg (Succ vuz7200)) == LT))",fontsize=16,color="black",shape="box"];701 -> 735[label="",style="solid", color="black", weight=3]; 702[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))",fontsize=16,color="black",shape="box"];702 -> 736[label="",style="solid", color="black", weight=3]; 703[label="primRemInt (Pos vuz690) (Pos (Succ vuz6800))",fontsize=16,color="black",shape="box"];703 -> 737[label="",style="solid", color="black", weight=3]; 704[label="primRemInt (Pos vuz690) (Pos Zero)",fontsize=16,color="black",shape="box"];704 -> 738[label="",style="solid", color="black", weight=3]; 705[label="primRemInt (Pos vuz690) (Neg (Succ vuz6800))",fontsize=16,color="black",shape="box"];705 -> 739[label="",style="solid", color="black", weight=3]; 706[label="primRemInt (Pos vuz690) (Neg Zero)",fontsize=16,color="black",shape="box"];706 -> 740[label="",style="solid", color="black", weight=3]; 707[label="primRemInt (Neg vuz690) (Pos (Succ vuz6800))",fontsize=16,color="black",shape="box"];707 -> 741[label="",style="solid", color="black", weight=3]; 708[label="primRemInt (Neg vuz690) (Pos Zero)",fontsize=16,color="black",shape="box"];708 -> 742[label="",style="solid", color="black", weight=3]; 709[label="primRemInt (Neg vuz690) (Neg (Succ vuz6800))",fontsize=16,color="black",shape="box"];709 -> 743[label="",style="solid", color="black", weight=3]; 710[label="primRemInt (Neg vuz690) (Neg Zero)",fontsize=16,color="black",shape="box"];710 -> 744[label="",style="solid", color="black", weight=3]; 1165[label="vuz880",fontsize=16,color="green",shape="box"];1166[label="vuz890",fontsize=16,color="green",shape="box"];662[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer vuz380) (not (primCmpInt vuz380 vuz710 == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer vuz380) (not (primCmpInt vuz380 vuz710 == LT)))",fontsize=16,color="burlywood",shape="box"];3573[label="vuz380/Pos vuz3800",fontsize=10,color="white",style="solid",shape="box"];662 -> 3573[label="",style="solid", color="burlywood", weight=9]; 3573 -> 682[label="",style="solid", color="burlywood", weight=3]; 3574[label="vuz380/Neg vuz3800",fontsize=10,color="white",style="solid",shape="box"];662 -> 3574[label="",style="solid", color="burlywood", weight=9]; 3574 -> 683[label="",style="solid", color="burlywood", weight=3]; 1468[label="Succ vuz3000",fontsize=16,color="green",shape="box"];1469[label="vuz3000",fontsize=16,color="green",shape="box"];1470[label="vuz720",fontsize=16,color="green",shape="box"];1467[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat vuz105 vuz106 == LT))",fontsize=16,color="burlywood",shape="triangle"];3575[label="vuz105/Succ vuz1050",fontsize=10,color="white",style="solid",shape="box"];1467 -> 3575[label="",style="solid", color="burlywood", weight=9]; 3575 -> 1491[label="",style="solid", color="burlywood", weight=3]; 3576[label="vuz105/Zero",fontsize=10,color="white",style="solid",shape="box"];1467 -> 3576[label="",style="solid", color="burlywood", weight=9]; 3576 -> 1492[label="",style="solid", color="burlywood", weight=3]; 725[label="absReal1 (Pos (Succ vuz3000)) (not False)",fontsize=16,color="black",shape="triangle"];725 -> 762[label="",style="solid", color="black", weight=3]; 726[label="absReal1 (Pos Zero) (not (primCmpNat Zero (Succ vuz7200) == LT))",fontsize=16,color="black",shape="box"];726 -> 763[label="",style="solid", color="black", weight=3]; 727[label="absReal1 (Pos Zero) (not (EQ == LT))",fontsize=16,color="black",shape="triangle"];727 -> 764[label="",style="solid", color="black", weight=3]; 728[label="absReal1 (Pos Zero) (not (GT == LT))",fontsize=16,color="black",shape="box"];728 -> 765[label="",style="solid", color="black", weight=3]; 729 -> 727[label="",style="dashed", color="red", weight=0]; 729[label="absReal1 (Pos Zero) (not (EQ == LT))",fontsize=16,color="magenta"];730[label="absReal1 (Neg (Succ vuz3000)) (not True)",fontsize=16,color="black",shape="box"];730 -> 766[label="",style="solid", color="black", weight=3]; 1883[label="vuz3000",fontsize=16,color="green",shape="box"];1884[label="vuz720",fontsize=16,color="green",shape="box"];1885[label="Succ vuz3000",fontsize=16,color="green",shape="box"];1882[label="absReal1 (Neg (Succ vuz130)) (not (primCmpNat vuz131 vuz132 == LT))",fontsize=16,color="burlywood",shape="triangle"];3577[label="vuz131/Succ vuz1310",fontsize=10,color="white",style="solid",shape="box"];1882 -> 3577[label="",style="solid", color="burlywood", weight=9]; 3577 -> 1913[label="",style="solid", color="burlywood", weight=3]; 3578[label="vuz131/Zero",fontsize=10,color="white",style="solid",shape="box"];1882 -> 3578[label="",style="solid", color="burlywood", weight=9]; 3578 -> 1914[label="",style="solid", color="burlywood", weight=3]; 733[label="absReal1 (Neg Zero) (not (LT == LT))",fontsize=16,color="black",shape="box"];733 -> 769[label="",style="solid", color="black", weight=3]; 734[label="absReal1 (Neg Zero) (not (EQ == LT))",fontsize=16,color="black",shape="triangle"];734 -> 770[label="",style="solid", color="black", weight=3]; 735[label="absReal1 (Neg Zero) (not (primCmpNat (Succ vuz7200) Zero == LT))",fontsize=16,color="black",shape="box"];735 -> 771[label="",style="solid", color="black", weight=3]; 736 -> 734[label="",style="dashed", color="red", weight=0]; 736[label="absReal1 (Neg Zero) (not (EQ == LT))",fontsize=16,color="magenta"];737[label="Pos (primModNatS vuz690 (Succ vuz6800))",fontsize=16,color="green",shape="box"];737 -> 772[label="",style="dashed", color="green", weight=3]; 738 -> 484[label="",style="dashed", color="red", weight=0]; 738[label="error []",fontsize=16,color="magenta"];739[label="Pos (primModNatS vuz690 (Succ vuz6800))",fontsize=16,color="green",shape="box"];739 -> 773[label="",style="dashed", color="green", weight=3]; 740 -> 484[label="",style="dashed", color="red", weight=0]; 740[label="error []",fontsize=16,color="magenta"];741[label="Neg (primModNatS vuz690 (Succ vuz6800))",fontsize=16,color="green",shape="box"];741 -> 774[label="",style="dashed", color="green", weight=3]; 742 -> 484[label="",style="dashed", color="red", weight=0]; 742[label="error []",fontsize=16,color="magenta"];743[label="Neg (primModNatS vuz690 (Succ vuz6800))",fontsize=16,color="green",shape="box"];743 -> 775[label="",style="dashed", color="green", weight=3]; 744 -> 484[label="",style="dashed", color="red", weight=0]; 744[label="error []",fontsize=16,color="magenta"];682[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos vuz3800)) (not (primCmpInt (Pos vuz3800) vuz710 == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos vuz3800)) (not (primCmpInt (Pos vuz3800) vuz710 == LT)))",fontsize=16,color="burlywood",shape="box"];3579[label="vuz3800/Succ vuz38000",fontsize=10,color="white",style="solid",shape="box"];682 -> 3579[label="",style="solid", color="burlywood", weight=9]; 3579 -> 711[label="",style="solid", color="burlywood", weight=3]; 3580[label="vuz3800/Zero",fontsize=10,color="white",style="solid",shape="box"];682 -> 3580[label="",style="solid", color="burlywood", weight=9]; 3580 -> 712[label="",style="solid", color="burlywood", weight=3]; 683[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg vuz3800)) (not (primCmpInt (Neg vuz3800) vuz710 == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg vuz3800)) (not (primCmpInt (Neg vuz3800) vuz710 == LT)))",fontsize=16,color="burlywood",shape="box"];3581[label="vuz3800/Succ vuz38000",fontsize=10,color="white",style="solid",shape="box"];683 -> 3581[label="",style="solid", color="burlywood", weight=9]; 3581 -> 713[label="",style="solid", color="burlywood", weight=3]; 3582[label="vuz3800/Zero",fontsize=10,color="white",style="solid",shape="box"];683 -> 3582[label="",style="solid", color="burlywood", weight=9]; 3582 -> 714[label="",style="solid", color="burlywood", weight=3]; 1491[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat (Succ vuz1050) vuz106 == LT))",fontsize=16,color="burlywood",shape="box"];3583[label="vuz106/Succ vuz1060",fontsize=10,color="white",style="solid",shape="box"];1491 -> 3583[label="",style="solid", color="burlywood", weight=9]; 3583 -> 1503[label="",style="solid", color="burlywood", weight=3]; 3584[label="vuz106/Zero",fontsize=10,color="white",style="solid",shape="box"];1491 -> 3584[label="",style="solid", color="burlywood", weight=9]; 3584 -> 1504[label="",style="solid", color="burlywood", weight=3]; 1492[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat Zero vuz106 == LT))",fontsize=16,color="burlywood",shape="box"];3585[label="vuz106/Succ vuz1060",fontsize=10,color="white",style="solid",shape="box"];1492 -> 3585[label="",style="solid", color="burlywood", weight=9]; 3585 -> 1505[label="",style="solid", color="burlywood", weight=3]; 3586[label="vuz106/Zero",fontsize=10,color="white",style="solid",shape="box"];1492 -> 3586[label="",style="solid", color="burlywood", weight=9]; 3586 -> 1506[label="",style="solid", color="burlywood", weight=3]; 762[label="absReal1 (Pos (Succ vuz3000)) True",fontsize=16,color="black",shape="box"];762 -> 797[label="",style="solid", color="black", weight=3]; 763[label="absReal1 (Pos Zero) (not (LT == LT))",fontsize=16,color="black",shape="box"];763 -> 798[label="",style="solid", color="black", weight=3]; 764[label="absReal1 (Pos Zero) (not False)",fontsize=16,color="black",shape="triangle"];764 -> 799[label="",style="solid", color="black", weight=3]; 765 -> 764[label="",style="dashed", color="red", weight=0]; 765[label="absReal1 (Pos Zero) (not False)",fontsize=16,color="magenta"];766[label="absReal1 (Neg (Succ vuz3000)) False",fontsize=16,color="black",shape="box"];766 -> 800[label="",style="solid", color="black", weight=3]; 1913[label="absReal1 (Neg (Succ vuz130)) (not (primCmpNat (Succ vuz1310) vuz132 == LT))",fontsize=16,color="burlywood",shape="box"];3587[label="vuz132/Succ vuz1320",fontsize=10,color="white",style="solid",shape="box"];1913 -> 3587[label="",style="solid", color="burlywood", weight=9]; 3587 -> 1935[label="",style="solid", color="burlywood", weight=3]; 3588[label="vuz132/Zero",fontsize=10,color="white",style="solid",shape="box"];1913 -> 3588[label="",style="solid", color="burlywood", weight=9]; 3588 -> 1936[label="",style="solid", color="burlywood", weight=3]; 1914[label="absReal1 (Neg (Succ vuz130)) (not (primCmpNat Zero vuz132 == LT))",fontsize=16,color="burlywood",shape="box"];3589[label="vuz132/Succ vuz1320",fontsize=10,color="white",style="solid",shape="box"];1914 -> 3589[label="",style="solid", color="burlywood", weight=9]; 3589 -> 1937[label="",style="solid", color="burlywood", weight=3]; 3590[label="vuz132/Zero",fontsize=10,color="white",style="solid",shape="box"];1914 -> 3590[label="",style="solid", color="burlywood", weight=9]; 3590 -> 1938[label="",style="solid", color="burlywood", weight=3]; 769[label="absReal1 (Neg Zero) (not True)",fontsize=16,color="black",shape="box"];769 -> 803[label="",style="solid", color="black", weight=3]; 770[label="absReal1 (Neg Zero) (not False)",fontsize=16,color="black",shape="triangle"];770 -> 804[label="",style="solid", color="black", weight=3]; 771[label="absReal1 (Neg Zero) (not (GT == LT))",fontsize=16,color="black",shape="box"];771 -> 805[label="",style="solid", color="black", weight=3]; 772[label="primModNatS vuz690 (Succ vuz6800)",fontsize=16,color="burlywood",shape="triangle"];3591[label="vuz690/Succ vuz6900",fontsize=10,color="white",style="solid",shape="box"];772 -> 3591[label="",style="solid", color="burlywood", weight=9]; 3591 -> 806[label="",style="solid", color="burlywood", weight=3]; 3592[label="vuz690/Zero",fontsize=10,color="white",style="solid",shape="box"];772 -> 3592[label="",style="solid", color="burlywood", weight=9]; 3592 -> 807[label="",style="solid", color="burlywood", weight=3]; 773 -> 772[label="",style="dashed", color="red", weight=0]; 773[label="primModNatS vuz690 (Succ vuz6800)",fontsize=16,color="magenta"];773 -> 808[label="",style="dashed", color="magenta", weight=3]; 774 -> 772[label="",style="dashed", color="red", weight=0]; 774[label="primModNatS vuz690 (Succ vuz6800)",fontsize=16,color="magenta"];774 -> 809[label="",style="dashed", color="magenta", weight=3]; 775 -> 772[label="",style="dashed", color="red", weight=0]; 775[label="primModNatS vuz690 (Succ vuz6800)",fontsize=16,color="magenta"];775 -> 810[label="",style="dashed", color="magenta", weight=3]; 775 -> 811[label="",style="dashed", color="magenta", weight=3]; 711[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpInt (Pos (Succ vuz38000)) vuz710 == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpInt (Pos (Succ vuz38000)) vuz710 == LT)))",fontsize=16,color="burlywood",shape="box"];3593[label="vuz710/Pos vuz7100",fontsize=10,color="white",style="solid",shape="box"];711 -> 3593[label="",style="solid", color="burlywood", weight=9]; 3593 -> 745[label="",style="solid", color="burlywood", weight=3]; 3594[label="vuz710/Neg vuz7100",fontsize=10,color="white",style="solid",shape="box"];711 -> 3594[label="",style="solid", color="burlywood", weight=9]; 3594 -> 746[label="",style="solid", color="burlywood", weight=3]; 712[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz710 == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz710 == LT)))",fontsize=16,color="burlywood",shape="box"];3595[label="vuz710/Pos vuz7100",fontsize=10,color="white",style="solid",shape="box"];712 -> 3595[label="",style="solid", color="burlywood", weight=9]; 3595 -> 747[label="",style="solid", color="burlywood", weight=3]; 3596[label="vuz710/Neg vuz7100",fontsize=10,color="white",style="solid",shape="box"];712 -> 3596[label="",style="solid", color="burlywood", weight=9]; 3596 -> 748[label="",style="solid", color="burlywood", weight=3]; 713[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpInt (Neg (Succ vuz38000)) vuz710 == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpInt (Neg (Succ vuz38000)) vuz710 == LT)))",fontsize=16,color="burlywood",shape="box"];3597[label="vuz710/Pos vuz7100",fontsize=10,color="white",style="solid",shape="box"];713 -> 3597[label="",style="solid", color="burlywood", weight=9]; 3597 -> 749[label="",style="solid", color="burlywood", weight=3]; 3598[label="vuz710/Neg vuz7100",fontsize=10,color="white",style="solid",shape="box"];713 -> 3598[label="",style="solid", color="burlywood", weight=9]; 3598 -> 750[label="",style="solid", color="burlywood", weight=3]; 714[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz710 == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz710 == LT)))",fontsize=16,color="burlywood",shape="box"];3599[label="vuz710/Pos vuz7100",fontsize=10,color="white",style="solid",shape="box"];714 -> 3599[label="",style="solid", color="burlywood", weight=9]; 3599 -> 751[label="",style="solid", color="burlywood", weight=3]; 3600[label="vuz710/Neg vuz7100",fontsize=10,color="white",style="solid",shape="box"];714 -> 3600[label="",style="solid", color="burlywood", weight=9]; 3600 -> 752[label="",style="solid", color="burlywood", weight=3]; 1503[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat (Succ vuz1050) (Succ vuz1060) == LT))",fontsize=16,color="black",shape="box"];1503 -> 1527[label="",style="solid", color="black", weight=3]; 1504[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat (Succ vuz1050) Zero == LT))",fontsize=16,color="black",shape="box"];1504 -> 1528[label="",style="solid", color="black", weight=3]; 1505[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat Zero (Succ vuz1060) == LT))",fontsize=16,color="black",shape="box"];1505 -> 1529[label="",style="solid", color="black", weight=3]; 1506[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];1506 -> 1530[label="",style="solid", color="black", weight=3]; 797[label="Pos (Succ vuz3000)",fontsize=16,color="green",shape="box"];798[label="absReal1 (Pos Zero) (not True)",fontsize=16,color="black",shape="box"];798 -> 838[label="",style="solid", color="black", weight=3]; 799[label="absReal1 (Pos Zero) True",fontsize=16,color="black",shape="box"];799 -> 839[label="",style="solid", color="black", weight=3]; 800[label="absReal0 (Neg (Succ vuz3000)) otherwise",fontsize=16,color="black",shape="box"];800 -> 840[label="",style="solid", color="black", weight=3]; 1935[label="absReal1 (Neg (Succ vuz130)) (not (primCmpNat (Succ vuz1310) (Succ vuz1320) == LT))",fontsize=16,color="black",shape="box"];1935 -> 1987[label="",style="solid", color="black", weight=3]; 1936[label="absReal1 (Neg (Succ vuz130)) (not (primCmpNat (Succ vuz1310) Zero == LT))",fontsize=16,color="black",shape="box"];1936 -> 1988[label="",style="solid", color="black", weight=3]; 1937[label="absReal1 (Neg (Succ vuz130)) (not (primCmpNat Zero (Succ vuz1320) == LT))",fontsize=16,color="black",shape="box"];1937 -> 1989[label="",style="solid", color="black", weight=3]; 1938[label="absReal1 (Neg (Succ vuz130)) (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];1938 -> 1990[label="",style="solid", color="black", weight=3]; 803[label="absReal1 (Neg Zero) False",fontsize=16,color="black",shape="box"];803 -> 845[label="",style="solid", color="black", weight=3]; 804[label="absReal1 (Neg Zero) True",fontsize=16,color="black",shape="box"];804 -> 846[label="",style="solid", color="black", weight=3]; 805 -> 770[label="",style="dashed", color="red", weight=0]; 805[label="absReal1 (Neg Zero) (not False)",fontsize=16,color="magenta"];806[label="primModNatS (Succ vuz6900) (Succ vuz6800)",fontsize=16,color="black",shape="box"];806 -> 847[label="",style="solid", color="black", weight=3]; 807[label="primModNatS Zero (Succ vuz6800)",fontsize=16,color="black",shape="box"];807 -> 848[label="",style="solid", color="black", weight=3]; 808[label="vuz6800",fontsize=16,color="green",shape="box"];809[label="vuz690",fontsize=16,color="green",shape="box"];810[label="vuz6800",fontsize=16,color="green",shape="box"];811[label="vuz690",fontsize=16,color="green",shape="box"];745[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpInt (Pos (Succ vuz38000)) (Pos vuz7100) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpInt (Pos (Succ vuz38000)) (Pos vuz7100) == LT)))",fontsize=16,color="black",shape="box"];745 -> 776[label="",style="solid", color="black", weight=3]; 746[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpInt (Pos (Succ vuz38000)) (Neg vuz7100) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpInt (Pos (Succ vuz38000)) (Neg vuz7100) == LT)))",fontsize=16,color="black",shape="box"];746 -> 777[label="",style="solid", color="black", weight=3]; 747[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz7100) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz7100) == LT)))",fontsize=16,color="burlywood",shape="box"];3601[label="vuz7100/Succ vuz71000",fontsize=10,color="white",style="solid",shape="box"];747 -> 3601[label="",style="solid", color="burlywood", weight=9]; 3601 -> 778[label="",style="solid", color="burlywood", weight=3]; 3602[label="vuz7100/Zero",fontsize=10,color="white",style="solid",shape="box"];747 -> 3602[label="",style="solid", color="burlywood", weight=9]; 3602 -> 779[label="",style="solid", color="burlywood", weight=3]; 748[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz7100) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz7100) == LT)))",fontsize=16,color="burlywood",shape="box"];3603[label="vuz7100/Succ vuz71000",fontsize=10,color="white",style="solid",shape="box"];748 -> 3603[label="",style="solid", color="burlywood", weight=9]; 3603 -> 780[label="",style="solid", color="burlywood", weight=3]; 3604[label="vuz7100/Zero",fontsize=10,color="white",style="solid",shape="box"];748 -> 3604[label="",style="solid", color="burlywood", weight=9]; 3604 -> 781[label="",style="solid", color="burlywood", weight=3]; 749[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpInt (Neg (Succ vuz38000)) (Pos vuz7100) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpInt (Neg (Succ vuz38000)) (Pos vuz7100) == LT)))",fontsize=16,color="black",shape="box"];749 -> 782[label="",style="solid", color="black", weight=3]; 750[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpInt (Neg (Succ vuz38000)) (Neg vuz7100) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpInt (Neg (Succ vuz38000)) (Neg vuz7100) == LT)))",fontsize=16,color="black",shape="box"];750 -> 783[label="",style="solid", color="black", weight=3]; 751[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz7100) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz7100) == LT)))",fontsize=16,color="burlywood",shape="box"];3605[label="vuz7100/Succ vuz71000",fontsize=10,color="white",style="solid",shape="box"];751 -> 3605[label="",style="solid", color="burlywood", weight=9]; 3605 -> 784[label="",style="solid", color="burlywood", weight=3]; 3606[label="vuz7100/Zero",fontsize=10,color="white",style="solid",shape="box"];751 -> 3606[label="",style="solid", color="burlywood", weight=9]; 3606 -> 785[label="",style="solid", color="burlywood", weight=3]; 752[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz7100) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz7100) == LT)))",fontsize=16,color="burlywood",shape="box"];3607[label="vuz7100/Succ vuz71000",fontsize=10,color="white",style="solid",shape="box"];752 -> 3607[label="",style="solid", color="burlywood", weight=9]; 3607 -> 786[label="",style="solid", color="burlywood", weight=3]; 3608[label="vuz7100/Zero",fontsize=10,color="white",style="solid",shape="box"];752 -> 3608[label="",style="solid", color="burlywood", weight=9]; 3608 -> 787[label="",style="solid", color="burlywood", weight=3]; 1527 -> 1467[label="",style="dashed", color="red", weight=0]; 1527[label="absReal1 (Pos (Succ vuz104)) (not (primCmpNat vuz1050 vuz1060 == LT))",fontsize=16,color="magenta"];1527 -> 1560[label="",style="dashed", color="magenta", weight=3]; 1527 -> 1561[label="",style="dashed", color="magenta", weight=3]; 1528 -> 692[label="",style="dashed", color="red", weight=0]; 1528[label="absReal1 (Pos (Succ vuz104)) (not (GT == LT))",fontsize=16,color="magenta"];1528 -> 1562[label="",style="dashed", color="magenta", weight=3]; 1529[label="absReal1 (Pos (Succ vuz104)) (not (LT == LT))",fontsize=16,color="black",shape="box"];1529 -> 1563[label="",style="solid", color="black", weight=3]; 1530[label="absReal1 (Pos (Succ vuz104)) (not (EQ == LT))",fontsize=16,color="black",shape="box"];1530 -> 1564[label="",style="solid", color="black", weight=3]; 838[label="absReal1 (Pos Zero) False",fontsize=16,color="black",shape="box"];838 -> 879[label="",style="solid", color="black", weight=3]; 839[label="Pos Zero",fontsize=16,color="green",shape="box"];840[label="absReal0 (Neg (Succ vuz3000)) True",fontsize=16,color="black",shape="box"];840 -> 880[label="",style="solid", color="black", weight=3]; 1987 -> 1882[label="",style="dashed", color="red", weight=0]; 1987[label="absReal1 (Neg (Succ vuz130)) (not (primCmpNat vuz1310 vuz1320 == LT))",fontsize=16,color="magenta"];1987 -> 2043[label="",style="dashed", color="magenta", weight=3]; 1987 -> 2044[label="",style="dashed", color="magenta", weight=3]; 1988[label="absReal1 (Neg (Succ vuz130)) (not (GT == LT))",fontsize=16,color="black",shape="box"];1988 -> 2045[label="",style="solid", color="black", weight=3]; 1989 -> 697[label="",style="dashed", color="red", weight=0]; 1989[label="absReal1 (Neg (Succ vuz130)) (not (LT == LT))",fontsize=16,color="magenta"];1989 -> 2046[label="",style="dashed", color="magenta", weight=3]; 1990[label="absReal1 (Neg (Succ vuz130)) (not (EQ == LT))",fontsize=16,color="black",shape="box"];1990 -> 2047[label="",style="solid", color="black", weight=3]; 845[label="absReal0 (Neg Zero) otherwise",fontsize=16,color="black",shape="box"];845 -> 885[label="",style="solid", color="black", weight=3]; 846[label="Neg Zero",fontsize=16,color="green",shape="box"];847[label="primModNatS0 vuz6900 vuz6800 (primGEqNatS vuz6900 vuz6800)",fontsize=16,color="burlywood",shape="box"];3609[label="vuz6900/Succ vuz69000",fontsize=10,color="white",style="solid",shape="box"];847 -> 3609[label="",style="solid", color="burlywood", weight=9]; 3609 -> 886[label="",style="solid", color="burlywood", weight=3]; 3610[label="vuz6900/Zero",fontsize=10,color="white",style="solid",shape="box"];847 -> 3610[label="",style="solid", color="burlywood", weight=9]; 3610 -> 887[label="",style="solid", color="burlywood", weight=3]; 848[label="Zero",fontsize=16,color="green",shape="box"];776 -> 2191[label="",style="dashed", color="red", weight=0]; 776[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpNat (Succ vuz38000) vuz7100 == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos (Succ vuz38000))) (not (primCmpNat (Succ vuz38000) vuz7100 == LT)))",fontsize=16,color="magenta"];776 -> 2192[label="",style="dashed", color="magenta", weight=3]; 776 -> 2193[label="",style="dashed", color="magenta", weight=3]; 776 -> 2194[label="",style="dashed", color="magenta", weight=3]; 776 -> 2195[label="",style="dashed", color="magenta", weight=3]; 776 -> 2196[label="",style="dashed", color="magenta", weight=3]; 776 -> 2197[label="",style="dashed", color="magenta", weight=3]; 777[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) (not (GT == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos (Succ vuz38000))) (not (GT == LT)))",fontsize=16,color="black",shape="triangle"];777 -> 814[label="",style="solid", color="black", weight=3]; 778[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz71000)) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz71000)) == LT)))",fontsize=16,color="black",shape="box"];778 -> 815[label="",style="solid", color="black", weight=3]; 779[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];779 -> 816[label="",style="solid", color="black", weight=3]; 780[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz71000)) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz71000)) == LT)))",fontsize=16,color="black",shape="box"];780 -> 817[label="",style="solid", color="black", weight=3]; 781[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)))",fontsize=16,color="black",shape="box"];781 -> 818[label="",style="solid", color="black", weight=3]; 782[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) (not (LT == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg (Succ vuz38000))) (not (LT == LT)))",fontsize=16,color="black",shape="triangle"];782 -> 819[label="",style="solid", color="black", weight=3]; 783 -> 2301[label="",style="dashed", color="red", weight=0]; 783[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpNat vuz7100 (Succ vuz38000) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg (Succ vuz38000))) (not (primCmpNat vuz7100 (Succ vuz38000) == LT)))",fontsize=16,color="magenta"];783 -> 2302[label="",style="dashed", color="magenta", weight=3]; 783 -> 2303[label="",style="dashed", color="magenta", weight=3]; 783 -> 2304[label="",style="dashed", color="magenta", weight=3]; 783 -> 2305[label="",style="dashed", color="magenta", weight=3]; 783 -> 2306[label="",style="dashed", color="magenta", weight=3]; 783 -> 2307[label="",style="dashed", color="magenta", weight=3]; 784[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz71000)) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz71000)) == LT)))",fontsize=16,color="black",shape="box"];784 -> 822[label="",style="solid", color="black", weight=3]; 785[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)))",fontsize=16,color="black",shape="box"];785 -> 823[label="",style="solid", color="black", weight=3]; 786[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz71000)) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz71000)) == LT)))",fontsize=16,color="black",shape="box"];786 -> 824[label="",style="solid", color="black", weight=3]; 787[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)))",fontsize=16,color="black",shape="box"];787 -> 825[label="",style="solid", color="black", weight=3]; 1560[label="vuz1050",fontsize=16,color="green",shape="box"];1561[label="vuz1060",fontsize=16,color="green",shape="box"];1562[label="vuz104",fontsize=16,color="green",shape="box"];1563[label="absReal1 (Pos (Succ vuz104)) (not True)",fontsize=16,color="black",shape="box"];1563 -> 1595[label="",style="solid", color="black", weight=3]; 1564 -> 725[label="",style="dashed", color="red", weight=0]; 1564[label="absReal1 (Pos (Succ vuz104)) (not False)",fontsize=16,color="magenta"];1564 -> 1596[label="",style="dashed", color="magenta", weight=3]; 879[label="absReal0 (Pos Zero) otherwise",fontsize=16,color="black",shape="box"];879 -> 922[label="",style="solid", color="black", weight=3]; 880[label="`negate` Neg (Succ vuz3000)",fontsize=16,color="black",shape="box"];880 -> 923[label="",style="solid", color="black", weight=3]; 2043[label="vuz1310",fontsize=16,color="green",shape="box"];2044[label="vuz1320",fontsize=16,color="green",shape="box"];2045[label="absReal1 (Neg (Succ vuz130)) (not False)",fontsize=16,color="black",shape="triangle"];2045 -> 2087[label="",style="solid", color="black", weight=3]; 2046[label="vuz130",fontsize=16,color="green",shape="box"];2047 -> 2045[label="",style="dashed", color="red", weight=0]; 2047[label="absReal1 (Neg (Succ vuz130)) (not False)",fontsize=16,color="magenta"];885[label="absReal0 (Neg Zero) True",fontsize=16,color="black",shape="box"];885 -> 929[label="",style="solid", color="black", weight=3]; 886[label="primModNatS0 (Succ vuz69000) vuz6800 (primGEqNatS (Succ vuz69000) vuz6800)",fontsize=16,color="burlywood",shape="box"];3611[label="vuz6800/Succ vuz68000",fontsize=10,color="white",style="solid",shape="box"];886 -> 3611[label="",style="solid", color="burlywood", weight=9]; 3611 -> 930[label="",style="solid", color="burlywood", weight=3]; 3612[label="vuz6800/Zero",fontsize=10,color="white",style="solid",shape="box"];886 -> 3612[label="",style="solid", color="burlywood", weight=9]; 3612 -> 931[label="",style="solid", color="burlywood", weight=3]; 887[label="primModNatS0 Zero vuz6800 (primGEqNatS Zero vuz6800)",fontsize=16,color="burlywood",shape="box"];3613[label="vuz6800/Succ vuz68000",fontsize=10,color="white",style="solid",shape="box"];887 -> 3613[label="",style="solid", color="burlywood", weight=9]; 3613 -> 932[label="",style="solid", color="burlywood", weight=3]; 3614[label="vuz6800/Zero",fontsize=10,color="white",style="solid",shape="box"];887 -> 3614[label="",style="solid", color="burlywood", weight=9]; 3614 -> 933[label="",style="solid", color="burlywood", weight=3]; 2192[label="vuz370",fontsize=16,color="green",shape="box"];2193[label="vuz7100",fontsize=16,color="green",shape="box"];2194[label="vuz62",fontsize=16,color="green",shape="box"];2195[label="vuz360",fontsize=16,color="green",shape="box"];2196[label="Succ vuz38000",fontsize=16,color="green",shape="box"];2197[label="vuz38000",fontsize=16,color="green",shape="box"];2191[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat vuz143 vuz144 == LT)) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat vuz143 vuz144 == LT)))",fontsize=16,color="burlywood",shape="triangle"];3615[label="vuz143/Succ vuz1430",fontsize=10,color="white",style="solid",shape="box"];2191 -> 3615[label="",style="solid", color="burlywood", weight=9]; 3615 -> 2252[label="",style="solid", color="burlywood", weight=3]; 3616[label="vuz143/Zero",fontsize=10,color="white",style="solid",shape="box"];2191 -> 3616[label="",style="solid", color="burlywood", weight=9]; 3616 -> 2253[label="",style="solid", color="burlywood", weight=3]; 814[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) (not False) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos (Succ vuz38000))) (not False))",fontsize=16,color="black",shape="triangle"];814 -> 851[label="",style="solid", color="black", weight=3]; 815[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz71000) == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz71000) == LT)))",fontsize=16,color="black",shape="box"];815 -> 852[label="",style="solid", color="black", weight=3]; 816[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not (EQ == LT)))",fontsize=16,color="black",shape="triangle"];816 -> 853[label="",style="solid", color="black", weight=3]; 817[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (GT == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not (GT == LT)))",fontsize=16,color="black",shape="box"];817 -> 854[label="",style="solid", color="black", weight=3]; 818 -> 816[label="",style="dashed", color="red", weight=0]; 818[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not (EQ == LT)))",fontsize=16,color="magenta"];819[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) (not True) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg (Succ vuz38000))) (not True))",fontsize=16,color="black",shape="box"];819 -> 855[label="",style="solid", color="black", weight=3]; 2302[label="vuz370",fontsize=16,color="green",shape="box"];2303[label="vuz7100",fontsize=16,color="green",shape="box"];2304[label="vuz360",fontsize=16,color="green",shape="box"];2305[label="vuz62",fontsize=16,color="green",shape="box"];2306[label="vuz38000",fontsize=16,color="green",shape="box"];2307[label="Succ vuz38000",fontsize=16,color="green",shape="box"];2301[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat vuz153 vuz154 == LT)) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat vuz153 vuz154 == LT)))",fontsize=16,color="burlywood",shape="triangle"];3617[label="vuz153/Succ vuz1530",fontsize=10,color="white",style="solid",shape="box"];2301 -> 3617[label="",style="solid", color="burlywood", weight=9]; 3617 -> 2362[label="",style="solid", color="burlywood", weight=3]; 3618[label="vuz153/Zero",fontsize=10,color="white",style="solid",shape="box"];2301 -> 3618[label="",style="solid", color="burlywood", weight=9]; 3618 -> 2363[label="",style="solid", color="burlywood", weight=3]; 822[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (LT == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not (LT == LT)))",fontsize=16,color="black",shape="box"];822 -> 858[label="",style="solid", color="black", weight=3]; 823[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not (EQ == LT)))",fontsize=16,color="black",shape="triangle"];823 -> 859[label="",style="solid", color="black", weight=3]; 824[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz71000) Zero == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz71000) Zero == LT)))",fontsize=16,color="black",shape="box"];824 -> 860[label="",style="solid", color="black", weight=3]; 825 -> 823[label="",style="dashed", color="red", weight=0]; 825[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not (EQ == LT)))",fontsize=16,color="magenta"];1595[label="absReal1 (Pos (Succ vuz104)) False",fontsize=16,color="black",shape="box"];1595 -> 1619[label="",style="solid", color="black", weight=3]; 1596[label="vuz104",fontsize=16,color="green",shape="box"];922[label="absReal0 (Pos Zero) True",fontsize=16,color="black",shape="box"];922 -> 956[label="",style="solid", color="black", weight=3]; 923[label="primNegInt (Neg (Succ vuz3000))",fontsize=16,color="black",shape="triangle"];923 -> 957[label="",style="solid", color="black", weight=3]; 2087[label="absReal1 (Neg (Succ vuz130)) True",fontsize=16,color="black",shape="box"];2087 -> 2139[label="",style="solid", color="black", weight=3]; 929[label="`negate` Neg Zero",fontsize=16,color="black",shape="box"];929 -> 963[label="",style="solid", color="black", weight=3]; 930[label="primModNatS0 (Succ vuz69000) (Succ vuz68000) (primGEqNatS (Succ vuz69000) (Succ vuz68000))",fontsize=16,color="black",shape="box"];930 -> 964[label="",style="solid", color="black", weight=3]; 931[label="primModNatS0 (Succ vuz69000) Zero (primGEqNatS (Succ vuz69000) Zero)",fontsize=16,color="black",shape="box"];931 -> 965[label="",style="solid", color="black", weight=3]; 932[label="primModNatS0 Zero (Succ vuz68000) (primGEqNatS Zero (Succ vuz68000))",fontsize=16,color="black",shape="box"];932 -> 966[label="",style="solid", color="black", weight=3]; 933[label="primModNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];933 -> 967[label="",style="solid", color="black", weight=3]; 2252[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat (Succ vuz1430) vuz144 == LT)) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat (Succ vuz1430) vuz144 == LT)))",fontsize=16,color="burlywood",shape="box"];3619[label="vuz144/Succ vuz1440",fontsize=10,color="white",style="solid",shape="box"];2252 -> 3619[label="",style="solid", color="burlywood", weight=9]; 3619 -> 2267[label="",style="solid", color="burlywood", weight=3]; 3620[label="vuz144/Zero",fontsize=10,color="white",style="solid",shape="box"];2252 -> 3620[label="",style="solid", color="burlywood", weight=9]; 3620 -> 2268[label="",style="solid", color="burlywood", weight=3]; 2253[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat Zero vuz144 == LT)) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat Zero vuz144 == LT)))",fontsize=16,color="burlywood",shape="box"];3621[label="vuz144/Succ vuz1440",fontsize=10,color="white",style="solid",shape="box"];2253 -> 3621[label="",style="solid", color="burlywood", weight=9]; 3621 -> 2269[label="",style="solid", color="burlywood", weight=3]; 3622[label="vuz144/Zero",fontsize=10,color="white",style="solid",shape="box"];2253 -> 3622[label="",style="solid", color="burlywood", weight=9]; 3622 -> 2270[label="",style="solid", color="burlywood", weight=3]; 851[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz38000))) True == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos (Succ vuz38000))) True)",fontsize=16,color="black",shape="box"];851 -> 940[label="",style="solid", color="black", weight=3]; 852[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (LT == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not (LT == LT)))",fontsize=16,color="black",shape="box"];852 -> 941[label="",style="solid", color="black", weight=3]; 853[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not False) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not False))",fontsize=16,color="black",shape="triangle"];853 -> 942[label="",style="solid", color="black", weight=3]; 854 -> 853[label="",style="dashed", color="red", weight=0]; 854[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not False) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not False))",fontsize=16,color="magenta"];855[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz38000))) False == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg (Succ vuz38000))) False)",fontsize=16,color="black",shape="box"];855 -> 943[label="",style="solid", color="black", weight=3]; 2362[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat (Succ vuz1530) vuz154 == LT)) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat (Succ vuz1530) vuz154 == LT)))",fontsize=16,color="burlywood",shape="box"];3623[label="vuz154/Succ vuz1540",fontsize=10,color="white",style="solid",shape="box"];2362 -> 3623[label="",style="solid", color="burlywood", weight=9]; 3623 -> 2415[label="",style="solid", color="burlywood", weight=3]; 3624[label="vuz154/Zero",fontsize=10,color="white",style="solid",shape="box"];2362 -> 3624[label="",style="solid", color="burlywood", weight=9]; 3624 -> 2416[label="",style="solid", color="burlywood", weight=3]; 2363[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat Zero vuz154 == LT)) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat Zero vuz154 == LT)))",fontsize=16,color="burlywood",shape="box"];3625[label="vuz154/Succ vuz1540",fontsize=10,color="white",style="solid",shape="box"];2363 -> 3625[label="",style="solid", color="burlywood", weight=9]; 3625 -> 2417[label="",style="solid", color="burlywood", weight=3]; 3626[label="vuz154/Zero",fontsize=10,color="white",style="solid",shape="box"];2363 -> 3626[label="",style="solid", color="burlywood", weight=9]; 3626 -> 2418[label="",style="solid", color="burlywood", weight=3]; 858[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not True) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not True))",fontsize=16,color="black",shape="box"];858 -> 946[label="",style="solid", color="black", weight=3]; 859[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not False) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not False))",fontsize=16,color="black",shape="triangle"];859 -> 947[label="",style="solid", color="black", weight=3]; 860[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (GT == LT)) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not (GT == LT)))",fontsize=16,color="black",shape="box"];860 -> 948[label="",style="solid", color="black", weight=3]; 1619[label="absReal0 (Pos (Succ vuz104)) otherwise",fontsize=16,color="black",shape="box"];1619 -> 1653[label="",style="solid", color="black", weight=3]; 956[label="`negate` Pos Zero",fontsize=16,color="black",shape="box"];956 -> 985[label="",style="solid", color="black", weight=3]; 957[label="Pos (Succ vuz3000)",fontsize=16,color="green",shape="box"];2139[label="Neg (Succ vuz130)",fontsize=16,color="green",shape="box"];963[label="primNegInt (Neg Zero)",fontsize=16,color="black",shape="triangle"];963 -> 991[label="",style="solid", color="black", weight=3]; 964 -> 2427[label="",style="dashed", color="red", weight=0]; 964[label="primModNatS0 (Succ vuz69000) (Succ vuz68000) (primGEqNatS vuz69000 vuz68000)",fontsize=16,color="magenta"];964 -> 2428[label="",style="dashed", color="magenta", weight=3]; 964 -> 2429[label="",style="dashed", color="magenta", weight=3]; 964 -> 2430[label="",style="dashed", color="magenta", weight=3]; 964 -> 2431[label="",style="dashed", color="magenta", weight=3]; 965[label="primModNatS0 (Succ vuz69000) Zero True",fontsize=16,color="black",shape="box"];965 -> 994[label="",style="solid", color="black", weight=3]; 966[label="primModNatS0 Zero (Succ vuz68000) False",fontsize=16,color="black",shape="box"];966 -> 995[label="",style="solid", color="black", weight=3]; 967[label="primModNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];967 -> 996[label="",style="solid", color="black", weight=3]; 2267[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat (Succ vuz1430) (Succ vuz1440) == LT)) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat (Succ vuz1430) (Succ vuz1440) == LT)))",fontsize=16,color="black",shape="box"];2267 -> 2364[label="",style="solid", color="black", weight=3]; 2268[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat (Succ vuz1430) Zero == LT)) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat (Succ vuz1430) Zero == LT)))",fontsize=16,color="black",shape="box"];2268 -> 2365[label="",style="solid", color="black", weight=3]; 2269[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat Zero (Succ vuz1440) == LT)) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat Zero (Succ vuz1440) == LT)))",fontsize=16,color="black",shape="box"];2269 -> 2366[label="",style="solid", color="black", weight=3]; 2270[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat Zero Zero == LT)) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat Zero Zero == LT)))",fontsize=16,color="black",shape="box"];2270 -> 2367[label="",style="solid", color="black", weight=3]; 940 -> 1150[label="",style="dashed", color="red", weight=0]; 940[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (Pos (Succ vuz38000)) == vuz62) (abs (Integer vuz370)) (Integer (Pos (Succ vuz38000)))",fontsize=16,color="magenta"];940 -> 1151[label="",style="dashed", color="magenta", weight=3]; 940 -> 1152[label="",style="dashed", color="magenta", weight=3]; 941[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not True) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) (not True))",fontsize=16,color="black",shape="box"];941 -> 1005[label="",style="solid", color="black", weight=3]; 942[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) True == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) True)",fontsize=16,color="black",shape="box"];942 -> 1006[label="",style="solid", color="black", weight=3]; 943[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg (Succ vuz38000))) otherwise == vuz62) (abs (Integer vuz370)) (absReal0 (Integer (Neg (Succ vuz38000))) otherwise)",fontsize=16,color="black",shape="box"];943 -> 1007[label="",style="solid", color="black", weight=3]; 2415[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat (Succ vuz1530) (Succ vuz1540) == LT)) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat (Succ vuz1530) (Succ vuz1540) == LT)))",fontsize=16,color="black",shape="box"];2415 -> 2468[label="",style="solid", color="black", weight=3]; 2416[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat (Succ vuz1530) Zero == LT)) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat (Succ vuz1530) Zero == LT)))",fontsize=16,color="black",shape="box"];2416 -> 2469[label="",style="solid", color="black", weight=3]; 2417[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat Zero (Succ vuz1540) == LT)) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat Zero (Succ vuz1540) == LT)))",fontsize=16,color="black",shape="box"];2417 -> 2470[label="",style="solid", color="black", weight=3]; 2418[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat Zero Zero == LT)) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat Zero Zero == LT)))",fontsize=16,color="black",shape="box"];2418 -> 2471[label="",style="solid", color="black", weight=3]; 946[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) False == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) False)",fontsize=16,color="black",shape="box"];946 -> 1012[label="",style="solid", color="black", weight=3]; 947[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) True == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) True)",fontsize=16,color="black",shape="box"];947 -> 1013[label="",style="solid", color="black", weight=3]; 948 -> 859[label="",style="dashed", color="red", weight=0]; 948[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not False) == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Neg Zero)) (not False))",fontsize=16,color="magenta"];1653[label="absReal0 (Pos (Succ vuz104)) True",fontsize=16,color="black",shape="box"];1653 -> 1695[label="",style="solid", color="black", weight=3]; 985[label="primNegInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];985 -> 1029[label="",style="solid", color="black", weight=3]; 991[label="Pos Zero",fontsize=16,color="green",shape="box"];2428[label="vuz69000",fontsize=16,color="green",shape="box"];2429[label="vuz68000",fontsize=16,color="green",shape="box"];2430[label="vuz69000",fontsize=16,color="green",shape="box"];2431[label="vuz68000",fontsize=16,color="green",shape="box"];2427[label="primModNatS0 (Succ vuz158) (Succ vuz159) (primGEqNatS vuz160 vuz161)",fontsize=16,color="burlywood",shape="triangle"];3627[label="vuz160/Succ vuz1600",fontsize=10,color="white",style="solid",shape="box"];2427 -> 3627[label="",style="solid", color="burlywood", weight=9]; 3627 -> 2472[label="",style="solid", color="burlywood", weight=3]; 3628[label="vuz160/Zero",fontsize=10,color="white",style="solid",shape="box"];2427 -> 3628[label="",style="solid", color="burlywood", weight=9]; 3628 -> 2473[label="",style="solid", color="burlywood", weight=3]; 994 -> 772[label="",style="dashed", color="red", weight=0]; 994[label="primModNatS (primMinusNatS (Succ vuz69000) Zero) (Succ Zero)",fontsize=16,color="magenta"];994 -> 1039[label="",style="dashed", color="magenta", weight=3]; 994 -> 1040[label="",style="dashed", color="magenta", weight=3]; 995[label="Succ Zero",fontsize=16,color="green",shape="box"];996 -> 772[label="",style="dashed", color="red", weight=0]; 996[label="primModNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];996 -> 1041[label="",style="dashed", color="magenta", weight=3]; 996 -> 1042[label="",style="dashed", color="magenta", weight=3]; 2364 -> 2191[label="",style="dashed", color="red", weight=0]; 2364[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat vuz1430 vuz1440 == LT)) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not (primCmpNat vuz1430 vuz1440 == LT)))",fontsize=16,color="magenta"];2364 -> 2419[label="",style="dashed", color="magenta", weight=3]; 2364 -> 2420[label="",style="dashed", color="magenta", weight=3]; 2365 -> 777[label="",style="dashed", color="red", weight=0]; 2365[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not (GT == LT)) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not (GT == LT)))",fontsize=16,color="magenta"];2365 -> 2421[label="",style="dashed", color="magenta", weight=3]; 2365 -> 2422[label="",style="dashed", color="magenta", weight=3]; 2365 -> 2423[label="",style="dashed", color="magenta", weight=3]; 2365 -> 2424[label="",style="dashed", color="magenta", weight=3]; 2366[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not (LT == LT)) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not (LT == LT)))",fontsize=16,color="black",shape="box"];2366 -> 2425[label="",style="solid", color="black", weight=3]; 2367[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not (EQ == LT)) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not (EQ == LT)))",fontsize=16,color="black",shape="box"];2367 -> 2426[label="",style="solid", color="black", weight=3]; 1151 -> 211[label="",style="dashed", color="red", weight=0]; 1151[label="Integer (Pos (Succ vuz38000)) == vuz62",fontsize=16,color="magenta"];1151 -> 1167[label="",style="dashed", color="magenta", weight=3]; 1151 -> 1168[label="",style="dashed", color="magenta", weight=3]; 1152[label="Pos (Succ vuz38000)",fontsize=16,color="green",shape="box"];1150[label="Integer vuz360 `quot` gcd0Gcd'1 vuz93 (abs (Integer vuz370)) (Integer vuz94)",fontsize=16,color="burlywood",shape="triangle"];3629[label="vuz93/False",fontsize=10,color="white",style="solid",shape="box"];1150 -> 3629[label="",style="solid", color="burlywood", weight=9]; 3629 -> 1169[label="",style="solid", color="burlywood", weight=3]; 3630[label="vuz93/True",fontsize=10,color="white",style="solid",shape="box"];1150 -> 3630[label="",style="solid", color="burlywood", weight=9]; 3630 -> 1170[label="",style="solid", color="burlywood", weight=3]; 1005[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) False == vuz62) (abs (Integer vuz370)) (absReal1 (Integer (Pos Zero)) False)",fontsize=16,color="black",shape="box"];1005 -> 1047[label="",style="solid", color="black", weight=3]; 1006 -> 1150[label="",style="dashed", color="red", weight=0]; 1006[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (Pos Zero) == vuz62) (abs (Integer vuz370)) (Integer (Pos Zero))",fontsize=16,color="magenta"];1006 -> 1155[label="",style="dashed", color="magenta", weight=3]; 1006 -> 1156[label="",style="dashed", color="magenta", weight=3]; 1007[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg (Succ vuz38000))) True == vuz62) (abs (Integer vuz370)) (absReal0 (Integer (Neg (Succ vuz38000))) True)",fontsize=16,color="black",shape="box"];1007 -> 1052[label="",style="solid", color="black", weight=3]; 2468 -> 2301[label="",style="dashed", color="red", weight=0]; 2468[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat vuz1530 vuz1540 == LT)) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not (primCmpNat vuz1530 vuz1540 == LT)))",fontsize=16,color="magenta"];2468 -> 2503[label="",style="dashed", color="magenta", weight=3]; 2468 -> 2504[label="",style="dashed", color="magenta", weight=3]; 2469[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not (GT == LT)) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not (GT == LT)))",fontsize=16,color="black",shape="box"];2469 -> 2505[label="",style="solid", color="black", weight=3]; 2470 -> 782[label="",style="dashed", color="red", weight=0]; 2470[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not (LT == LT)) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not (LT == LT)))",fontsize=16,color="magenta"];2470 -> 2506[label="",style="dashed", color="magenta", weight=3]; 2470 -> 2507[label="",style="dashed", color="magenta", weight=3]; 2470 -> 2508[label="",style="dashed", color="magenta", weight=3]; 2470 -> 2509[label="",style="dashed", color="magenta", weight=3]; 2471[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not (EQ == LT)) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not (EQ == LT)))",fontsize=16,color="black",shape="box"];2471 -> 2510[label="",style="solid", color="black", weight=3]; 1012[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg Zero)) otherwise == vuz62) (abs (Integer vuz370)) (absReal0 (Integer (Neg Zero)) otherwise)",fontsize=16,color="black",shape="box"];1012 -> 1057[label="",style="solid", color="black", weight=3]; 1013 -> 1150[label="",style="dashed", color="red", weight=0]; 1013[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (Neg Zero) == vuz62) (abs (Integer vuz370)) (Integer (Neg Zero))",fontsize=16,color="magenta"];1013 -> 1157[label="",style="dashed", color="magenta", weight=3]; 1013 -> 1158[label="",style="dashed", color="magenta", weight=3]; 1695[label="`negate` Pos (Succ vuz104)",fontsize=16,color="black",shape="box"];1695 -> 1701[label="",style="solid", color="black", weight=3]; 1029[label="Neg Zero",fontsize=16,color="green",shape="box"];2472[label="primModNatS0 (Succ vuz158) (Succ vuz159) (primGEqNatS (Succ vuz1600) vuz161)",fontsize=16,color="burlywood",shape="box"];3631[label="vuz161/Succ vuz1610",fontsize=10,color="white",style="solid",shape="box"];2472 -> 3631[label="",style="solid", color="burlywood", weight=9]; 3631 -> 2511[label="",style="solid", color="burlywood", weight=3]; 3632[label="vuz161/Zero",fontsize=10,color="white",style="solid",shape="box"];2472 -> 3632[label="",style="solid", color="burlywood", weight=9]; 3632 -> 2512[label="",style="solid", color="burlywood", weight=3]; 2473[label="primModNatS0 (Succ vuz158) (Succ vuz159) (primGEqNatS Zero vuz161)",fontsize=16,color="burlywood",shape="box"];3633[label="vuz161/Succ vuz1610",fontsize=10,color="white",style="solid",shape="box"];2473 -> 3633[label="",style="solid", color="burlywood", weight=9]; 3633 -> 2513[label="",style="solid", color="burlywood", weight=3]; 3634[label="vuz161/Zero",fontsize=10,color="white",style="solid",shape="box"];2473 -> 3634[label="",style="solid", color="burlywood", weight=9]; 3634 -> 2514[label="",style="solid", color="burlywood", weight=3]; 1039[label="Zero",fontsize=16,color="green",shape="box"];1040 -> 1022[label="",style="dashed", color="red", weight=0]; 1040[label="primMinusNatS (Succ vuz69000) Zero",fontsize=16,color="magenta"];1040 -> 1080[label="",style="dashed", color="magenta", weight=3]; 1040 -> 1081[label="",style="dashed", color="magenta", weight=3]; 1041[label="Zero",fontsize=16,color="green",shape="box"];1042 -> 1022[label="",style="dashed", color="red", weight=0]; 1042[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];1042 -> 1082[label="",style="dashed", color="magenta", weight=3]; 1042 -> 1083[label="",style="dashed", color="magenta", weight=3]; 2419[label="vuz1440",fontsize=16,color="green",shape="box"];2420[label="vuz1430",fontsize=16,color="green",shape="box"];2421[label="vuz145",fontsize=16,color="green",shape="box"];2422[label="vuz146",fontsize=16,color="green",shape="box"];2423[label="vuz142",fontsize=16,color="green",shape="box"];2424[label="vuz141",fontsize=16,color="green",shape="box"];2425[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not True) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not True))",fontsize=16,color="black",shape="box"];2425 -> 2474[label="",style="solid", color="black", weight=3]; 2426 -> 814[label="",style="dashed", color="red", weight=0]; 2426[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) (not False) == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) (not False))",fontsize=16,color="magenta"];2426 -> 2475[label="",style="dashed", color="magenta", weight=3]; 2426 -> 2476[label="",style="dashed", color="magenta", weight=3]; 2426 -> 2477[label="",style="dashed", color="magenta", weight=3]; 2426 -> 2478[label="",style="dashed", color="magenta", weight=3]; 1167[label="Pos (Succ vuz38000)",fontsize=16,color="green",shape="box"];1168[label="vuz62",fontsize=16,color="green",shape="box"];1169[label="Integer vuz360 `quot` gcd0Gcd'1 False (abs (Integer vuz370)) (Integer vuz94)",fontsize=16,color="black",shape="box"];1169 -> 1214[label="",style="solid", color="black", weight=3]; 1170[label="Integer vuz360 `quot` gcd0Gcd'1 True (abs (Integer vuz370)) (Integer vuz94)",fontsize=16,color="black",shape="box"];1170 -> 1215[label="",style="solid", color="black", weight=3]; 1047[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos Zero)) otherwise == vuz62) (abs (Integer vuz370)) (absReal0 (Integer (Pos Zero)) otherwise)",fontsize=16,color="black",shape="box"];1047 -> 1095[label="",style="solid", color="black", weight=3]; 1155 -> 211[label="",style="dashed", color="red", weight=0]; 1155[label="Integer (Pos Zero) == vuz62",fontsize=16,color="magenta"];1155 -> 1171[label="",style="dashed", color="magenta", weight=3]; 1155 -> 1172[label="",style="dashed", color="magenta", weight=3]; 1156[label="Pos Zero",fontsize=16,color="green",shape="box"];1052[label="Integer vuz360 `quot` gcd0Gcd'1 (`negate` Integer (Neg (Succ vuz38000)) == vuz62) (abs (Integer vuz370)) (`negate` Integer (Neg (Succ vuz38000)))",fontsize=16,color="black",shape="box"];1052 -> 1100[label="",style="solid", color="black", weight=3]; 2503[label="vuz1530",fontsize=16,color="green",shape="box"];2504[label="vuz1540",fontsize=16,color="green",shape="box"];2505[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not False) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not False))",fontsize=16,color="black",shape="triangle"];2505 -> 2546[label="",style="solid", color="black", weight=3]; 2506[label="vuz155",fontsize=16,color="green",shape="box"];2507[label="vuz152",fontsize=16,color="green",shape="box"];2508[label="vuz156",fontsize=16,color="green",shape="box"];2509[label="vuz151",fontsize=16,color="green",shape="box"];2510 -> 2505[label="",style="dashed", color="red", weight=0]; 2510[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) (not False) == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) (not False))",fontsize=16,color="magenta"];1057[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg Zero)) True == vuz62) (abs (Integer vuz370)) (absReal0 (Integer (Neg Zero)) True)",fontsize=16,color="black",shape="box"];1057 -> 1106[label="",style="solid", color="black", weight=3]; 1157 -> 211[label="",style="dashed", color="red", weight=0]; 1157[label="Integer (Neg Zero) == vuz62",fontsize=16,color="magenta"];1157 -> 1173[label="",style="dashed", color="magenta", weight=3]; 1157 -> 1174[label="",style="dashed", color="magenta", weight=3]; 1158[label="Neg Zero",fontsize=16,color="green",shape="box"];1701[label="primNegInt (Pos (Succ vuz104))",fontsize=16,color="black",shape="triangle"];1701 -> 1704[label="",style="solid", color="black", weight=3]; 2511[label="primModNatS0 (Succ vuz158) (Succ vuz159) (primGEqNatS (Succ vuz1600) (Succ vuz1610))",fontsize=16,color="black",shape="box"];2511 -> 2547[label="",style="solid", color="black", weight=3]; 2512[label="primModNatS0 (Succ vuz158) (Succ vuz159) (primGEqNatS (Succ vuz1600) Zero)",fontsize=16,color="black",shape="box"];2512 -> 2548[label="",style="solid", color="black", weight=3]; 2513[label="primModNatS0 (Succ vuz158) (Succ vuz159) (primGEqNatS Zero (Succ vuz1610))",fontsize=16,color="black",shape="box"];2513 -> 2549[label="",style="solid", color="black", weight=3]; 2514[label="primModNatS0 (Succ vuz158) (Succ vuz159) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];2514 -> 2550[label="",style="solid", color="black", weight=3]; 1080[label="Succ vuz69000",fontsize=16,color="green",shape="box"];1081[label="Zero",fontsize=16,color="green",shape="box"];1082[label="Zero",fontsize=16,color="green",shape="box"];1083[label="Zero",fontsize=16,color="green",shape="box"];2474[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz142))) False == vuz145) (abs (Integer vuz146)) (absReal1 (Integer (Pos (Succ vuz142))) False)",fontsize=16,color="black",shape="box"];2474 -> 2515[label="",style="solid", color="black", weight=3]; 2475[label="vuz145",fontsize=16,color="green",shape="box"];2476[label="vuz146",fontsize=16,color="green",shape="box"];2477[label="vuz142",fontsize=16,color="green",shape="box"];2478[label="vuz141",fontsize=16,color="green",shape="box"];1214[label="Integer vuz360 `quot` gcd0Gcd'0 (abs (Integer vuz370)) (Integer vuz94)",fontsize=16,color="black",shape="box"];1214 -> 1256[label="",style="solid", color="black", weight=3]; 1215[label="Integer vuz360 `quot` abs (Integer vuz370)",fontsize=16,color="black",shape="box"];1215 -> 1257[label="",style="solid", color="black", weight=3]; 1095[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos Zero)) True == vuz62) (abs (Integer vuz370)) (absReal0 (Integer (Pos Zero)) True)",fontsize=16,color="black",shape="box"];1095 -> 1147[label="",style="solid", color="black", weight=3]; 1171[label="Pos Zero",fontsize=16,color="green",shape="box"];1172[label="vuz62",fontsize=16,color="green",shape="box"];1100 -> 1150[label="",style="dashed", color="red", weight=0]; 1100[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (primNegInt (Neg (Succ vuz38000))) == vuz62) (abs (Integer vuz370)) (Integer (primNegInt (Neg (Succ vuz38000))))",fontsize=16,color="magenta"];1100 -> 1163[label="",style="dashed", color="magenta", weight=3]; 1100 -> 1164[label="",style="dashed", color="magenta", weight=3]; 2546[label="Integer vuz151 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz152))) True == vuz155) (abs (Integer vuz156)) (absReal1 (Integer (Neg (Succ vuz152))) True)",fontsize=16,color="black",shape="box"];2546 -> 2555[label="",style="solid", color="black", weight=3]; 1106[label="Integer vuz360 `quot` gcd0Gcd'1 (`negate` Integer (Neg Zero) == vuz62) (abs (Integer vuz370)) (`negate` Integer (Neg Zero))",fontsize=16,color="black",shape="box"];1106 -> 1180[label="",style="solid", color="black", weight=3]; 1173[label="Neg Zero",fontsize=16,color="green",shape="box"];1174[label="vuz62",fontsize=16,color="green",shape="box"];1704[label="Neg (Succ vuz104)",fontsize=16,color="green",shape="box"];2547 -> 2427[label="",style="dashed", color="red", weight=0]; 2547[label="primModNatS0 (Succ vuz158) (Succ vuz159) (primGEqNatS vuz1600 vuz1610)",fontsize=16,color="magenta"];2547 -> 2556[label="",style="dashed", color="magenta", weight=3]; 2547 -> 2557[label="",style="dashed", color="magenta", weight=3]; 2548[label="primModNatS0 (Succ vuz158) (Succ vuz159) True",fontsize=16,color="black",shape="triangle"];2548 -> 2558[label="",style="solid", color="black", weight=3]; 2549[label="primModNatS0 (Succ vuz158) (Succ vuz159) False",fontsize=16,color="black",shape="box"];2549 -> 2559[label="",style="solid", color="black", weight=3]; 2550 -> 2548[label="",style="dashed", color="red", weight=0]; 2550[label="primModNatS0 (Succ vuz158) (Succ vuz159) True",fontsize=16,color="magenta"];2515[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos (Succ vuz142))) otherwise == vuz145) (abs (Integer vuz146)) (absReal0 (Integer (Pos (Succ vuz142))) otherwise)",fontsize=16,color="black",shape="box"];2515 -> 2551[label="",style="solid", color="black", weight=3]; 1256[label="Integer vuz360 `quot` gcd0Gcd' (Integer vuz94) (abs (Integer vuz370) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1256 -> 1326[label="",style="solid", color="black", weight=3]; 1257[label="Integer vuz360 `quot` absReal (Integer vuz370)",fontsize=16,color="black",shape="box"];1257 -> 1327[label="",style="solid", color="black", weight=3]; 1147[label="Integer vuz360 `quot` gcd0Gcd'1 (`negate` Integer (Pos Zero) == vuz62) (abs (Integer vuz370)) (`negate` Integer (Pos Zero))",fontsize=16,color="black",shape="box"];1147 -> 1210[label="",style="solid", color="black", weight=3]; 1163 -> 211[label="",style="dashed", color="red", weight=0]; 1163[label="Integer (primNegInt (Neg (Succ vuz38000))) == vuz62",fontsize=16,color="magenta"];1163 -> 1211[label="",style="dashed", color="magenta", weight=3]; 1163 -> 1212[label="",style="dashed", color="magenta", weight=3]; 1164 -> 923[label="",style="dashed", color="red", weight=0]; 1164[label="primNegInt (Neg (Succ vuz38000))",fontsize=16,color="magenta"];1164 -> 1213[label="",style="dashed", color="magenta", weight=3]; 2555 -> 1150[label="",style="dashed", color="red", weight=0]; 2555[label="Integer vuz151 `quot` gcd0Gcd'1 (Integer (Neg (Succ vuz152)) == vuz155) (abs (Integer vuz156)) (Integer (Neg (Succ vuz152)))",fontsize=16,color="magenta"];2555 -> 2603[label="",style="dashed", color="magenta", weight=3]; 2555 -> 2604[label="",style="dashed", color="magenta", weight=3]; 2555 -> 2605[label="",style="dashed", color="magenta", weight=3]; 2555 -> 2606[label="",style="dashed", color="magenta", weight=3]; 1180 -> 1150[label="",style="dashed", color="red", weight=0]; 1180[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (primNegInt (Neg Zero)) == vuz62) (abs (Integer vuz370)) (Integer (primNegInt (Neg Zero)))",fontsize=16,color="magenta"];1180 -> 1221[label="",style="dashed", color="magenta", weight=3]; 1180 -> 1222[label="",style="dashed", color="magenta", weight=3]; 2556[label="vuz1610",fontsize=16,color="green",shape="box"];2557[label="vuz1600",fontsize=16,color="green",shape="box"];2558 -> 772[label="",style="dashed", color="red", weight=0]; 2558[label="primModNatS (primMinusNatS (Succ vuz158) (Succ vuz159)) (Succ (Succ vuz159))",fontsize=16,color="magenta"];2558 -> 2607[label="",style="dashed", color="magenta", weight=3]; 2558 -> 2608[label="",style="dashed", color="magenta", weight=3]; 2559[label="Succ (Succ vuz158)",fontsize=16,color="green",shape="box"];2551[label="Integer vuz141 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos (Succ vuz142))) True == vuz145) (abs (Integer vuz146)) (absReal0 (Integer (Pos (Succ vuz142))) True)",fontsize=16,color="black",shape="box"];2551 -> 2560[label="",style="solid", color="black", weight=3]; 1326[label="Integer vuz360 `quot` gcd0Gcd'2 (Integer vuz94) (abs (Integer vuz370) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1326 -> 1368[label="",style="solid", color="black", weight=3]; 1327[label="Integer vuz360 `quot` absReal2 (Integer vuz370)",fontsize=16,color="black",shape="box"];1327 -> 1369[label="",style="solid", color="black", weight=3]; 1210 -> 1150[label="",style="dashed", color="red", weight=0]; 1210[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (primNegInt (Pos Zero)) == vuz62) (abs (Integer vuz370)) (Integer (primNegInt (Pos Zero)))",fontsize=16,color="magenta"];1210 -> 1253[label="",style="dashed", color="magenta", weight=3]; 1210 -> 1254[label="",style="dashed", color="magenta", weight=3]; 1211 -> 923[label="",style="dashed", color="red", weight=0]; 1211[label="primNegInt (Neg (Succ vuz38000))",fontsize=16,color="magenta"];1211 -> 1255[label="",style="dashed", color="magenta", weight=3]; 1212[label="vuz62",fontsize=16,color="green",shape="box"];1213[label="vuz38000",fontsize=16,color="green",shape="box"];2603 -> 211[label="",style="dashed", color="red", weight=0]; 2603[label="Integer (Neg (Succ vuz152)) == vuz155",fontsize=16,color="magenta"];2603 -> 2641[label="",style="dashed", color="magenta", weight=3]; 2603 -> 2642[label="",style="dashed", color="magenta", weight=3]; 2604[label="vuz156",fontsize=16,color="green",shape="box"];2605[label="Neg (Succ vuz152)",fontsize=16,color="green",shape="box"];2606[label="vuz151",fontsize=16,color="green",shape="box"];1221 -> 211[label="",style="dashed", color="red", weight=0]; 1221[label="Integer (primNegInt (Neg Zero)) == vuz62",fontsize=16,color="magenta"];1221 -> 1265[label="",style="dashed", color="magenta", weight=3]; 1221 -> 1266[label="",style="dashed", color="magenta", weight=3]; 1222 -> 963[label="",style="dashed", color="red", weight=0]; 1222[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];2607[label="Succ vuz159",fontsize=16,color="green",shape="box"];2608 -> 1022[label="",style="dashed", color="red", weight=0]; 2608[label="primMinusNatS (Succ vuz158) (Succ vuz159)",fontsize=16,color="magenta"];2608 -> 2643[label="",style="dashed", color="magenta", weight=3]; 2608 -> 2644[label="",style="dashed", color="magenta", weight=3]; 2560[label="Integer vuz141 `quot` gcd0Gcd'1 (`negate` Integer (Pos (Succ vuz142)) == vuz145) (abs (Integer vuz146)) (`negate` Integer (Pos (Succ vuz142)))",fontsize=16,color="black",shape="box"];2560 -> 2609[label="",style="solid", color="black", weight=3]; 1368 -> 1405[label="",style="dashed", color="red", weight=0]; 1368[label="Integer vuz360 `quot` gcd0Gcd'1 (abs (Integer vuz370) `rem` Integer vuz94 == fromInt (Pos Zero)) (Integer vuz94) (abs (Integer vuz370) `rem` Integer vuz94)",fontsize=16,color="magenta"];1368 -> 1406[label="",style="dashed", color="magenta", weight=3]; 1369 -> 1411[label="",style="dashed", color="red", weight=0]; 1369[label="Integer vuz360 `quot` absReal1 (Integer vuz370) (Integer vuz370 >= fromInt (Pos Zero))",fontsize=16,color="magenta"];1369 -> 1412[label="",style="dashed", color="magenta", weight=3]; 1253 -> 211[label="",style="dashed", color="red", weight=0]; 1253[label="Integer (primNegInt (Pos Zero)) == vuz62",fontsize=16,color="magenta"];1253 -> 1335[label="",style="dashed", color="magenta", weight=3]; 1253 -> 1336[label="",style="dashed", color="magenta", weight=3]; 1254 -> 985[label="",style="dashed", color="red", weight=0]; 1254[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];1255[label="vuz38000",fontsize=16,color="green",shape="box"];2641[label="Neg (Succ vuz152)",fontsize=16,color="green",shape="box"];2642[label="vuz155",fontsize=16,color="green",shape="box"];1265 -> 963[label="",style="dashed", color="red", weight=0]; 1265[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];1266[label="vuz62",fontsize=16,color="green",shape="box"];2643[label="Succ vuz158",fontsize=16,color="green",shape="box"];2644[label="Succ vuz159",fontsize=16,color="green",shape="box"];2609 -> 1150[label="",style="dashed", color="red", weight=0]; 2609[label="Integer vuz141 `quot` gcd0Gcd'1 (Integer (primNegInt (Pos (Succ vuz142))) == vuz145) (abs (Integer vuz146)) (Integer (primNegInt (Pos (Succ vuz142))))",fontsize=16,color="magenta"];2609 -> 2645[label="",style="dashed", color="magenta", weight=3]; 2609 -> 2646[label="",style="dashed", color="magenta", weight=3]; 2609 -> 2647[label="",style="dashed", color="magenta", weight=3]; 2609 -> 2648[label="",style="dashed", color="magenta", weight=3]; 1406 -> 12[label="",style="dashed", color="red", weight=0]; 1406[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];1405[label="Integer vuz360 `quot` gcd0Gcd'1 (abs (Integer vuz370) `rem` Integer vuz94 == vuz101) (Integer vuz94) (abs (Integer vuz370) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1405 -> 1414[label="",style="solid", color="black", weight=3]; 1412 -> 12[label="",style="dashed", color="red", weight=0]; 1412[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];1411[label="Integer vuz360 `quot` absReal1 (Integer vuz370) (Integer vuz370 >= vuz102)",fontsize=16,color="black",shape="triangle"];1411 -> 1415[label="",style="solid", color="black", weight=3]; 1335 -> 985[label="",style="dashed", color="red", weight=0]; 1335[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];1336[label="vuz62",fontsize=16,color="green",shape="box"];2645 -> 211[label="",style="dashed", color="red", weight=0]; 2645[label="Integer (primNegInt (Pos (Succ vuz142))) == vuz145",fontsize=16,color="magenta"];2645 -> 2673[label="",style="dashed", color="magenta", weight=3]; 2645 -> 2674[label="",style="dashed", color="magenta", weight=3]; 2646[label="vuz146",fontsize=16,color="green",shape="box"];2647 -> 1701[label="",style="dashed", color="red", weight=0]; 2647[label="primNegInt (Pos (Succ vuz142))",fontsize=16,color="magenta"];2647 -> 2675[label="",style="dashed", color="magenta", weight=3]; 2648[label="vuz141",fontsize=16,color="green",shape="box"];1414[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal (Integer vuz370) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal (Integer vuz370) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1414 -> 1449[label="",style="solid", color="black", weight=3]; 1415[label="Integer vuz360 `quot` absReal1 (Integer vuz370) (compare (Integer vuz370) vuz102 /= LT)",fontsize=16,color="black",shape="box"];1415 -> 1450[label="",style="solid", color="black", weight=3]; 2673 -> 1701[label="",style="dashed", color="red", weight=0]; 2673[label="primNegInt (Pos (Succ vuz142))",fontsize=16,color="magenta"];2673 -> 2703[label="",style="dashed", color="magenta", weight=3]; 2674[label="vuz145",fontsize=16,color="green",shape="box"];2675[label="vuz142",fontsize=16,color="green",shape="box"];1449[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal2 (Integer vuz370) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal2 (Integer vuz370) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1449 -> 1493[label="",style="solid", color="black", weight=3]; 1450[label="Integer vuz360 `quot` absReal1 (Integer vuz370) (not (compare (Integer vuz370) vuz102 == LT))",fontsize=16,color="burlywood",shape="box"];3635[label="vuz102/Integer vuz1020",fontsize=10,color="white",style="solid",shape="box"];1450 -> 3635[label="",style="solid", color="burlywood", weight=9]; 3635 -> 1494[label="",style="solid", color="burlywood", weight=3]; 2703[label="vuz142",fontsize=16,color="green",shape="box"];1493 -> 1524[label="",style="dashed", color="red", weight=0]; 1493[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer vuz370) (Integer vuz370 >= fromInt (Pos Zero)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer vuz370) (Integer vuz370 >= fromInt (Pos Zero)) `rem` Integer vuz94)",fontsize=16,color="magenta"];1493 -> 1525[label="",style="dashed", color="magenta", weight=3]; 1493 -> 1526[label="",style="dashed", color="magenta", weight=3]; 1494[label="Integer vuz360 `quot` absReal1 (Integer vuz370) (not (compare (Integer vuz370) (Integer vuz1020) == LT))",fontsize=16,color="black",shape="box"];1494 -> 1532[label="",style="solid", color="black", weight=3]; 1525 -> 12[label="",style="dashed", color="red", weight=0]; 1525[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];1526 -> 12[label="",style="dashed", color="red", weight=0]; 1526[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];1524[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer vuz370) (Integer vuz370 >= vuz110) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer vuz370) (Integer vuz370 >= vuz109) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1524 -> 1559[label="",style="solid", color="black", weight=3]; 1532[label="Integer vuz360 `quot` absReal1 (Integer vuz370) (not (primCmpInt vuz370 vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3636[label="vuz370/Pos vuz3700",fontsize=10,color="white",style="solid",shape="box"];1532 -> 3636[label="",style="solid", color="burlywood", weight=9]; 3636 -> 1566[label="",style="solid", color="burlywood", weight=3]; 3637[label="vuz370/Neg vuz3700",fontsize=10,color="white",style="solid",shape="box"];1532 -> 3637[label="",style="solid", color="burlywood", weight=9]; 3637 -> 1567[label="",style="solid", color="burlywood", weight=3]; 1559[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer vuz370) (compare (Integer vuz370) vuz110 /= LT) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer vuz370) (compare (Integer vuz370) vuz110 /= LT) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1559 -> 1594[label="",style="solid", color="black", weight=3]; 1566[label="Integer vuz360 `quot` absReal1 (Integer (Pos vuz3700)) (not (primCmpInt (Pos vuz3700) vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3638[label="vuz3700/Succ vuz37000",fontsize=10,color="white",style="solid",shape="box"];1566 -> 3638[label="",style="solid", color="burlywood", weight=9]; 3638 -> 1597[label="",style="solid", color="burlywood", weight=3]; 3639[label="vuz3700/Zero",fontsize=10,color="white",style="solid",shape="box"];1566 -> 3639[label="",style="solid", color="burlywood", weight=9]; 3639 -> 1598[label="",style="solid", color="burlywood", weight=3]; 1567[label="Integer vuz360 `quot` absReal1 (Integer (Neg vuz3700)) (not (primCmpInt (Neg vuz3700) vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3640[label="vuz3700/Succ vuz37000",fontsize=10,color="white",style="solid",shape="box"];1567 -> 3640[label="",style="solid", color="burlywood", weight=9]; 3640 -> 1599[label="",style="solid", color="burlywood", weight=3]; 3641[label="vuz3700/Zero",fontsize=10,color="white",style="solid",shape="box"];1567 -> 3641[label="",style="solid", color="burlywood", weight=9]; 3641 -> 1600[label="",style="solid", color="burlywood", weight=3]; 1594[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer vuz370) (not (compare (Integer vuz370) vuz110 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer vuz370) (not (compare (Integer vuz370) vuz110 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3642[label="vuz110/Integer vuz1100",fontsize=10,color="white",style="solid",shape="box"];1594 -> 3642[label="",style="solid", color="burlywood", weight=9]; 3642 -> 1635[label="",style="solid", color="burlywood", weight=3]; 1597[label="Integer vuz360 `quot` absReal1 (Integer (Pos (Succ vuz37000))) (not (primCmpInt (Pos (Succ vuz37000)) vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3643[label="vuz1020/Pos vuz10200",fontsize=10,color="white",style="solid",shape="box"];1597 -> 3643[label="",style="solid", color="burlywood", weight=9]; 3643 -> 1636[label="",style="solid", color="burlywood", weight=3]; 3644[label="vuz1020/Neg vuz10200",fontsize=10,color="white",style="solid",shape="box"];1597 -> 3644[label="",style="solid", color="burlywood", weight=9]; 3644 -> 1637[label="",style="solid", color="burlywood", weight=3]; 1598[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3645[label="vuz1020/Pos vuz10200",fontsize=10,color="white",style="solid",shape="box"];1598 -> 3645[label="",style="solid", color="burlywood", weight=9]; 3645 -> 1638[label="",style="solid", color="burlywood", weight=3]; 3646[label="vuz1020/Neg vuz10200",fontsize=10,color="white",style="solid",shape="box"];1598 -> 3646[label="",style="solid", color="burlywood", weight=9]; 3646 -> 1639[label="",style="solid", color="burlywood", weight=3]; 1599[label="Integer vuz360 `quot` absReal1 (Integer (Neg (Succ vuz37000))) (not (primCmpInt (Neg (Succ vuz37000)) vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3647[label="vuz1020/Pos vuz10200",fontsize=10,color="white",style="solid",shape="box"];1599 -> 3647[label="",style="solid", color="burlywood", weight=9]; 3647 -> 1640[label="",style="solid", color="burlywood", weight=3]; 3648[label="vuz1020/Neg vuz10200",fontsize=10,color="white",style="solid",shape="box"];1599 -> 3648[label="",style="solid", color="burlywood", weight=9]; 3648 -> 1641[label="",style="solid", color="burlywood", weight=3]; 1600[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1020 == LT))",fontsize=16,color="burlywood",shape="box"];3649[label="vuz1020/Pos vuz10200",fontsize=10,color="white",style="solid",shape="box"];1600 -> 3649[label="",style="solid", color="burlywood", weight=9]; 3649 -> 1642[label="",style="solid", color="burlywood", weight=3]; 3650[label="vuz1020/Neg vuz10200",fontsize=10,color="white",style="solid",shape="box"];1600 -> 3650[label="",style="solid", color="burlywood", weight=9]; 3650 -> 1643[label="",style="solid", color="burlywood", weight=3]; 1635[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer vuz370) (not (compare (Integer vuz370) (Integer vuz1100) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer vuz370) (not (compare (Integer vuz370) (Integer vuz1100) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1635 -> 1671[label="",style="solid", color="black", weight=3]; 1636[label="Integer vuz360 `quot` absReal1 (Integer (Pos (Succ vuz37000))) (not (primCmpInt (Pos (Succ vuz37000)) (Pos vuz10200) == LT))",fontsize=16,color="black",shape="box"];1636 -> 1672[label="",style="solid", color="black", weight=3]; 1637[label="Integer vuz360 `quot` absReal1 (Integer (Pos (Succ vuz37000))) (not (primCmpInt (Pos (Succ vuz37000)) (Neg vuz10200) == LT))",fontsize=16,color="black",shape="box"];1637 -> 1673[label="",style="solid", color="black", weight=3]; 1638[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz10200) == LT))",fontsize=16,color="burlywood",shape="box"];3651[label="vuz10200/Succ vuz102000",fontsize=10,color="white",style="solid",shape="box"];1638 -> 3651[label="",style="solid", color="burlywood", weight=9]; 3651 -> 1674[label="",style="solid", color="burlywood", weight=3]; 3652[label="vuz10200/Zero",fontsize=10,color="white",style="solid",shape="box"];1638 -> 3652[label="",style="solid", color="burlywood", weight=9]; 3652 -> 1675[label="",style="solid", color="burlywood", weight=3]; 1639[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz10200) == LT))",fontsize=16,color="burlywood",shape="box"];3653[label="vuz10200/Succ vuz102000",fontsize=10,color="white",style="solid",shape="box"];1639 -> 3653[label="",style="solid", color="burlywood", weight=9]; 3653 -> 1676[label="",style="solid", color="burlywood", weight=3]; 3654[label="vuz10200/Zero",fontsize=10,color="white",style="solid",shape="box"];1639 -> 3654[label="",style="solid", color="burlywood", weight=9]; 3654 -> 1677[label="",style="solid", color="burlywood", weight=3]; 1640[label="Integer vuz360 `quot` absReal1 (Integer (Neg (Succ vuz37000))) (not (primCmpInt (Neg (Succ vuz37000)) (Pos vuz10200) == LT))",fontsize=16,color="black",shape="box"];1640 -> 1678[label="",style="solid", color="black", weight=3]; 1641[label="Integer vuz360 `quot` absReal1 (Integer (Neg (Succ vuz37000))) (not (primCmpInt (Neg (Succ vuz37000)) (Neg vuz10200) == LT))",fontsize=16,color="black",shape="box"];1641 -> 1679[label="",style="solid", color="black", weight=3]; 1642[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz10200) == LT))",fontsize=16,color="burlywood",shape="box"];3655[label="vuz10200/Succ vuz102000",fontsize=10,color="white",style="solid",shape="box"];1642 -> 3655[label="",style="solid", color="burlywood", weight=9]; 3655 -> 1680[label="",style="solid", color="burlywood", weight=3]; 3656[label="vuz10200/Zero",fontsize=10,color="white",style="solid",shape="box"];1642 -> 3656[label="",style="solid", color="burlywood", weight=9]; 3656 -> 1681[label="",style="solid", color="burlywood", weight=3]; 1643[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz10200) == LT))",fontsize=16,color="burlywood",shape="box"];3657[label="vuz10200/Succ vuz102000",fontsize=10,color="white",style="solid",shape="box"];1643 -> 3657[label="",style="solid", color="burlywood", weight=9]; 3657 -> 1682[label="",style="solid", color="burlywood", weight=3]; 3658[label="vuz10200/Zero",fontsize=10,color="white",style="solid",shape="box"];1643 -> 3658[label="",style="solid", color="burlywood", weight=9]; 3658 -> 1683[label="",style="solid", color="burlywood", weight=3]; 1671[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer vuz370) (not (primCmpInt vuz370 vuz1100 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer vuz370) (not (primCmpInt vuz370 vuz1100 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3659[label="vuz370/Pos vuz3700",fontsize=10,color="white",style="solid",shape="box"];1671 -> 3659[label="",style="solid", color="burlywood", weight=9]; 3659 -> 1715[label="",style="solid", color="burlywood", weight=3]; 3660[label="vuz370/Neg vuz3700",fontsize=10,color="white",style="solid",shape="box"];1671 -> 3660[label="",style="solid", color="burlywood", weight=9]; 3660 -> 1716[label="",style="solid", color="burlywood", weight=3]; 1672 -> 3027[label="",style="dashed", color="red", weight=0]; 1672[label="Integer vuz360 `quot` absReal1 (Integer (Pos (Succ vuz37000))) (not (primCmpNat (Succ vuz37000) vuz10200 == LT))",fontsize=16,color="magenta"];1672 -> 3028[label="",style="dashed", color="magenta", weight=3]; 1672 -> 3029[label="",style="dashed", color="magenta", weight=3]; 1672 -> 3030[label="",style="dashed", color="magenta", weight=3]; 1672 -> 3031[label="",style="dashed", color="magenta", weight=3]; 1673[label="Integer vuz360 `quot` absReal1 (Integer (Pos (Succ vuz37000))) (not (GT == LT))",fontsize=16,color="black",shape="triangle"];1673 -> 1719[label="",style="solid", color="black", weight=3]; 1674[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz102000)) == LT))",fontsize=16,color="black",shape="box"];1674 -> 1720[label="",style="solid", color="black", weight=3]; 1675[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];1675 -> 1721[label="",style="solid", color="black", weight=3]; 1676[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz102000)) == LT))",fontsize=16,color="black",shape="box"];1676 -> 1722[label="",style="solid", color="black", weight=3]; 1677[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT))",fontsize=16,color="black",shape="box"];1677 -> 1723[label="",style="solid", color="black", weight=3]; 1678[label="Integer vuz360 `quot` absReal1 (Integer (Neg (Succ vuz37000))) (not (LT == LT))",fontsize=16,color="black",shape="triangle"];1678 -> 1724[label="",style="solid", color="black", weight=3]; 1679 -> 3072[label="",style="dashed", color="red", weight=0]; 1679[label="Integer vuz360 `quot` absReal1 (Integer (Neg (Succ vuz37000))) (not (primCmpNat vuz10200 (Succ vuz37000) == LT))",fontsize=16,color="magenta"];1679 -> 3073[label="",style="dashed", color="magenta", weight=3]; 1679 -> 3074[label="",style="dashed", color="magenta", weight=3]; 1679 -> 3075[label="",style="dashed", color="magenta", weight=3]; 1679 -> 3076[label="",style="dashed", color="magenta", weight=3]; 1680[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz102000)) == LT))",fontsize=16,color="black",shape="box"];1680 -> 1727[label="",style="solid", color="black", weight=3]; 1681[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];1681 -> 1728[label="",style="solid", color="black", weight=3]; 1682[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz102000)) == LT))",fontsize=16,color="black",shape="box"];1682 -> 1729[label="",style="solid", color="black", weight=3]; 1683[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT))",fontsize=16,color="black",shape="box"];1683 -> 1730[label="",style="solid", color="black", weight=3]; 1715[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos vuz3700)) (not (primCmpInt (Pos vuz3700) vuz1100 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos vuz3700)) (not (primCmpInt (Pos vuz3700) vuz1100 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3661[label="vuz3700/Succ vuz37000",fontsize=10,color="white",style="solid",shape="box"];1715 -> 3661[label="",style="solid", color="burlywood", weight=9]; 3661 -> 1756[label="",style="solid", color="burlywood", weight=3]; 3662[label="vuz3700/Zero",fontsize=10,color="white",style="solid",shape="box"];1715 -> 3662[label="",style="solid", color="burlywood", weight=9]; 3662 -> 1757[label="",style="solid", color="burlywood", weight=3]; 1716[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg vuz3700)) (not (primCmpInt (Neg vuz3700) vuz1100 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg vuz3700)) (not (primCmpInt (Neg vuz3700) vuz1100 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3663[label="vuz3700/Succ vuz37000",fontsize=10,color="white",style="solid",shape="box"];1716 -> 3663[label="",style="solid", color="burlywood", weight=9]; 3663 -> 1758[label="",style="solid", color="burlywood", weight=3]; 3664[label="vuz3700/Zero",fontsize=10,color="white",style="solid",shape="box"];1716 -> 3664[label="",style="solid", color="burlywood", weight=9]; 3664 -> 1759[label="",style="solid", color="burlywood", weight=3]; 3028[label="vuz37000",fontsize=16,color="green",shape="box"];3029[label="vuz10200",fontsize=16,color="green",shape="box"];3030[label="vuz360",fontsize=16,color="green",shape="box"];3031[label="Succ vuz37000",fontsize=16,color="green",shape="box"];3027[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not (primCmpNat vuz179 vuz180 == LT))",fontsize=16,color="burlywood",shape="triangle"];3665[label="vuz179/Succ vuz1790",fontsize=10,color="white",style="solid",shape="box"];3027 -> 3665[label="",style="solid", color="burlywood", weight=9]; 3665 -> 3068[label="",style="solid", color="burlywood", weight=3]; 3666[label="vuz179/Zero",fontsize=10,color="white",style="solid",shape="box"];3027 -> 3666[label="",style="solid", color="burlywood", weight=9]; 3666 -> 3069[label="",style="solid", color="burlywood", weight=3]; 1719[label="Integer vuz360 `quot` absReal1 (Integer (Pos (Succ vuz37000))) (not False)",fontsize=16,color="black",shape="triangle"];1719 -> 1762[label="",style="solid", color="black", weight=3]; 1720[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz102000) == LT))",fontsize=16,color="black",shape="box"];1720 -> 1763[label="",style="solid", color="black", weight=3]; 1721[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="triangle"];1721 -> 1764[label="",style="solid", color="black", weight=3]; 1722[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not (GT == LT))",fontsize=16,color="black",shape="box"];1722 -> 1765[label="",style="solid", color="black", weight=3]; 1723 -> 1721[label="",style="dashed", color="red", weight=0]; 1723[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not (EQ == LT))",fontsize=16,color="magenta"];1724[label="Integer vuz360 `quot` absReal1 (Integer (Neg (Succ vuz37000))) (not True)",fontsize=16,color="black",shape="box"];1724 -> 1766[label="",style="solid", color="black", weight=3]; 3073[label="vuz360",fontsize=16,color="green",shape="box"];3074[label="vuz10200",fontsize=16,color="green",shape="box"];3075[label="Succ vuz37000",fontsize=16,color="green",shape="box"];3076[label="vuz37000",fontsize=16,color="green",shape="box"];3072[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not (primCmpNat vuz184 vuz185 == LT))",fontsize=16,color="burlywood",shape="triangle"];3667[label="vuz184/Succ vuz1840",fontsize=10,color="white",style="solid",shape="box"];3072 -> 3667[label="",style="solid", color="burlywood", weight=9]; 3667 -> 3113[label="",style="solid", color="burlywood", weight=3]; 3668[label="vuz184/Zero",fontsize=10,color="white",style="solid",shape="box"];3072 -> 3668[label="",style="solid", color="burlywood", weight=9]; 3668 -> 3114[label="",style="solid", color="burlywood", weight=3]; 1727[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not (LT == LT))",fontsize=16,color="black",shape="box"];1727 -> 1769[label="",style="solid", color="black", weight=3]; 1728[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="triangle"];1728 -> 1770[label="",style="solid", color="black", weight=3]; 1729[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz102000) Zero == LT))",fontsize=16,color="black",shape="box"];1729 -> 1771[label="",style="solid", color="black", weight=3]; 1730 -> 1728[label="",style="dashed", color="red", weight=0]; 1730[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not (EQ == LT))",fontsize=16,color="magenta"];1756[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz37000))) (not (primCmpInt (Pos (Succ vuz37000)) vuz1100 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz37000))) (not (primCmpInt (Pos (Succ vuz37000)) vuz1100 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3669[label="vuz1100/Pos vuz11000",fontsize=10,color="white",style="solid",shape="box"];1756 -> 3669[label="",style="solid", color="burlywood", weight=9]; 3669 -> 1795[label="",style="solid", color="burlywood", weight=3]; 3670[label="vuz1100/Neg vuz11000",fontsize=10,color="white",style="solid",shape="box"];1756 -> 3670[label="",style="solid", color="burlywood", weight=9]; 3670 -> 1796[label="",style="solid", color="burlywood", weight=3]; 1757[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1100 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) vuz1100 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3671[label="vuz1100/Pos vuz11000",fontsize=10,color="white",style="solid",shape="box"];1757 -> 3671[label="",style="solid", color="burlywood", weight=9]; 3671 -> 1797[label="",style="solid", color="burlywood", weight=3]; 3672[label="vuz1100/Neg vuz11000",fontsize=10,color="white",style="solid",shape="box"];1757 -> 3672[label="",style="solid", color="burlywood", weight=9]; 3672 -> 1798[label="",style="solid", color="burlywood", weight=3]; 1758[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz37000))) (not (primCmpInt (Neg (Succ vuz37000)) vuz1100 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz37000))) (not (primCmpInt (Neg (Succ vuz37000)) vuz1100 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3673[label="vuz1100/Pos vuz11000",fontsize=10,color="white",style="solid",shape="box"];1758 -> 3673[label="",style="solid", color="burlywood", weight=9]; 3673 -> 1799[label="",style="solid", color="burlywood", weight=3]; 3674[label="vuz1100/Neg vuz11000",fontsize=10,color="white",style="solid",shape="box"];1758 -> 3674[label="",style="solid", color="burlywood", weight=9]; 3674 -> 1800[label="",style="solid", color="burlywood", weight=3]; 1759[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1100 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) vuz1100 == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3675[label="vuz1100/Pos vuz11000",fontsize=10,color="white",style="solid",shape="box"];1759 -> 3675[label="",style="solid", color="burlywood", weight=9]; 3675 -> 1801[label="",style="solid", color="burlywood", weight=3]; 3676[label="vuz1100/Neg vuz11000",fontsize=10,color="white",style="solid",shape="box"];1759 -> 3676[label="",style="solid", color="burlywood", weight=9]; 3676 -> 1802[label="",style="solid", color="burlywood", weight=3]; 3068[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not (primCmpNat (Succ vuz1790) vuz180 == LT))",fontsize=16,color="burlywood",shape="box"];3677[label="vuz180/Succ vuz1800",fontsize=10,color="white",style="solid",shape="box"];3068 -> 3677[label="",style="solid", color="burlywood", weight=9]; 3677 -> 3115[label="",style="solid", color="burlywood", weight=3]; 3678[label="vuz180/Zero",fontsize=10,color="white",style="solid",shape="box"];3068 -> 3678[label="",style="solid", color="burlywood", weight=9]; 3678 -> 3116[label="",style="solid", color="burlywood", weight=3]; 3069[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not (primCmpNat Zero vuz180 == LT))",fontsize=16,color="burlywood",shape="box"];3679[label="vuz180/Succ vuz1800",fontsize=10,color="white",style="solid",shape="box"];3069 -> 3679[label="",style="solid", color="burlywood", weight=9]; 3679 -> 3117[label="",style="solid", color="burlywood", weight=3]; 3680[label="vuz180/Zero",fontsize=10,color="white",style="solid",shape="box"];3069 -> 3680[label="",style="solid", color="burlywood", weight=9]; 3680 -> 3118[label="",style="solid", color="burlywood", weight=3]; 1762[label="Integer vuz360 `quot` absReal1 (Integer (Pos (Succ vuz37000))) True",fontsize=16,color="black",shape="box"];1762 -> 1805[label="",style="solid", color="black", weight=3]; 1763[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not (LT == LT))",fontsize=16,color="black",shape="box"];1763 -> 1806[label="",style="solid", color="black", weight=3]; 1764[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not False)",fontsize=16,color="black",shape="triangle"];1764 -> 1807[label="",style="solid", color="black", weight=3]; 1765 -> 1764[label="",style="dashed", color="red", weight=0]; 1765[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not False)",fontsize=16,color="magenta"];1766[label="Integer vuz360 `quot` absReal1 (Integer (Neg (Succ vuz37000))) False",fontsize=16,color="black",shape="box"];1766 -> 1808[label="",style="solid", color="black", weight=3]; 3113[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not (primCmpNat (Succ vuz1840) vuz185 == LT))",fontsize=16,color="burlywood",shape="box"];3681[label="vuz185/Succ vuz1850",fontsize=10,color="white",style="solid",shape="box"];3113 -> 3681[label="",style="solid", color="burlywood", weight=9]; 3681 -> 3134[label="",style="solid", color="burlywood", weight=3]; 3682[label="vuz185/Zero",fontsize=10,color="white",style="solid",shape="box"];3113 -> 3682[label="",style="solid", color="burlywood", weight=9]; 3682 -> 3135[label="",style="solid", color="burlywood", weight=3]; 3114[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not (primCmpNat Zero vuz185 == LT))",fontsize=16,color="burlywood",shape="box"];3683[label="vuz185/Succ vuz1850",fontsize=10,color="white",style="solid",shape="box"];3114 -> 3683[label="",style="solid", color="burlywood", weight=9]; 3683 -> 3136[label="",style="solid", color="burlywood", weight=3]; 3684[label="vuz185/Zero",fontsize=10,color="white",style="solid",shape="box"];3114 -> 3684[label="",style="solid", color="burlywood", weight=9]; 3684 -> 3137[label="",style="solid", color="burlywood", weight=3]; 1769[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not True)",fontsize=16,color="black",shape="box"];1769 -> 1811[label="",style="solid", color="black", weight=3]; 1770[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not False)",fontsize=16,color="black",shape="triangle"];1770 -> 1812[label="",style="solid", color="black", weight=3]; 1771[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not (GT == LT))",fontsize=16,color="black",shape="box"];1771 -> 1813[label="",style="solid", color="black", weight=3]; 1795[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz37000))) (not (primCmpInt (Pos (Succ vuz37000)) (Pos vuz11000) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz37000))) (not (primCmpInt (Pos (Succ vuz37000)) (Pos vuz11000) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1795 -> 1849[label="",style="solid", color="black", weight=3]; 1796[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz37000))) (not (primCmpInt (Pos (Succ vuz37000)) (Neg vuz11000) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz37000))) (not (primCmpInt (Pos (Succ vuz37000)) (Neg vuz11000) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1796 -> 1850[label="",style="solid", color="black", weight=3]; 1797[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz11000) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos vuz11000) == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3685[label="vuz11000/Succ vuz110000",fontsize=10,color="white",style="solid",shape="box"];1797 -> 3685[label="",style="solid", color="burlywood", weight=9]; 3685 -> 1851[label="",style="solid", color="burlywood", weight=3]; 3686[label="vuz11000/Zero",fontsize=10,color="white",style="solid",shape="box"];1797 -> 3686[label="",style="solid", color="burlywood", weight=9]; 3686 -> 1852[label="",style="solid", color="burlywood", weight=3]; 1798[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz11000) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg vuz11000) == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3687[label="vuz11000/Succ vuz110000",fontsize=10,color="white",style="solid",shape="box"];1798 -> 3687[label="",style="solid", color="burlywood", weight=9]; 3687 -> 1853[label="",style="solid", color="burlywood", weight=3]; 3688[label="vuz11000/Zero",fontsize=10,color="white",style="solid",shape="box"];1798 -> 3688[label="",style="solid", color="burlywood", weight=9]; 3688 -> 1854[label="",style="solid", color="burlywood", weight=3]; 1799[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz37000))) (not (primCmpInt (Neg (Succ vuz37000)) (Pos vuz11000) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz37000))) (not (primCmpInt (Neg (Succ vuz37000)) (Pos vuz11000) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1799 -> 1855[label="",style="solid", color="black", weight=3]; 1800[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz37000))) (not (primCmpInt (Neg (Succ vuz37000)) (Neg vuz11000) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz37000))) (not (primCmpInt (Neg (Succ vuz37000)) (Neg vuz11000) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1800 -> 1856[label="",style="solid", color="black", weight=3]; 1801[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz11000) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos vuz11000) == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3689[label="vuz11000/Succ vuz110000",fontsize=10,color="white",style="solid",shape="box"];1801 -> 3689[label="",style="solid", color="burlywood", weight=9]; 3689 -> 1857[label="",style="solid", color="burlywood", weight=3]; 3690[label="vuz11000/Zero",fontsize=10,color="white",style="solid",shape="box"];1801 -> 3690[label="",style="solid", color="burlywood", weight=9]; 3690 -> 1858[label="",style="solid", color="burlywood", weight=3]; 1802[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz11000) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg vuz11000) == LT)) `rem` Integer vuz94)",fontsize=16,color="burlywood",shape="box"];3691[label="vuz11000/Succ vuz110000",fontsize=10,color="white",style="solid",shape="box"];1802 -> 3691[label="",style="solid", color="burlywood", weight=9]; 3691 -> 1859[label="",style="solid", color="burlywood", weight=3]; 3692[label="vuz11000/Zero",fontsize=10,color="white",style="solid",shape="box"];1802 -> 3692[label="",style="solid", color="burlywood", weight=9]; 3692 -> 1860[label="",style="solid", color="burlywood", weight=3]; 3115[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not (primCmpNat (Succ vuz1790) (Succ vuz1800) == LT))",fontsize=16,color="black",shape="box"];3115 -> 3138[label="",style="solid", color="black", weight=3]; 3116[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not (primCmpNat (Succ vuz1790) Zero == LT))",fontsize=16,color="black",shape="box"];3116 -> 3139[label="",style="solid", color="black", weight=3]; 3117[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not (primCmpNat Zero (Succ vuz1800) == LT))",fontsize=16,color="black",shape="box"];3117 -> 3140[label="",style="solid", color="black", weight=3]; 3118[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];3118 -> 3141[label="",style="solid", color="black", weight=3]; 1805 -> 2082[label="",style="dashed", color="red", weight=0]; 1805[label="Integer vuz360 `quot` Integer (Pos (Succ vuz37000))",fontsize=16,color="magenta"];1805 -> 2083[label="",style="dashed", color="magenta", weight=3]; 1806[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) (not True)",fontsize=16,color="black",shape="box"];1806 -> 1866[label="",style="solid", color="black", weight=3]; 1807[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];1807 -> 1867[label="",style="solid", color="black", weight=3]; 1808[label="Integer vuz360 `quot` absReal0 (Integer (Neg (Succ vuz37000))) otherwise",fontsize=16,color="black",shape="box"];1808 -> 1868[label="",style="solid", color="black", weight=3]; 3134[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not (primCmpNat (Succ vuz1840) (Succ vuz1850) == LT))",fontsize=16,color="black",shape="box"];3134 -> 3156[label="",style="solid", color="black", weight=3]; 3135[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not (primCmpNat (Succ vuz1840) Zero == LT))",fontsize=16,color="black",shape="box"];3135 -> 3157[label="",style="solid", color="black", weight=3]; 3136[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not (primCmpNat Zero (Succ vuz1850) == LT))",fontsize=16,color="black",shape="box"];3136 -> 3158[label="",style="solid", color="black", weight=3]; 3137[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not (primCmpNat Zero Zero == LT))",fontsize=16,color="black",shape="box"];3137 -> 3159[label="",style="solid", color="black", weight=3]; 1811[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) False",fontsize=16,color="black",shape="box"];1811 -> 1873[label="",style="solid", color="black", weight=3]; 1812[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];1812 -> 1874[label="",style="solid", color="black", weight=3]; 1813 -> 1770[label="",style="dashed", color="red", weight=0]; 1813[label="Integer vuz360 `quot` absReal1 (Integer (Neg Zero)) (not False)",fontsize=16,color="magenta"];1849 -> 3186[label="",style="dashed", color="red", weight=0]; 1849[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz37000))) (not (primCmpNat (Succ vuz37000) vuz11000 == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz37000))) (not (primCmpNat (Succ vuz37000) vuz11000 == LT)) `rem` Integer vuz94)",fontsize=16,color="magenta"];1849 -> 3187[label="",style="dashed", color="magenta", weight=3]; 1849 -> 3188[label="",style="dashed", color="magenta", weight=3]; 1849 -> 3189[label="",style="dashed", color="magenta", weight=3]; 1849 -> 3190[label="",style="dashed", color="magenta", weight=3]; 1849 -> 3191[label="",style="dashed", color="magenta", weight=3]; 1849 -> 3192[label="",style="dashed", color="magenta", weight=3]; 1850[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz37000))) (not (GT == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz37000))) (not (GT == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1850 -> 1950[label="",style="solid", color="black", weight=3]; 1851[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz110000)) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos (Succ vuz110000)) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1851 -> 1951[label="",style="solid", color="black", weight=3]; 1852[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1852 -> 1952[label="",style="solid", color="black", weight=3]; 1853[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz110000)) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg (Succ vuz110000)) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1853 -> 1953[label="",style="solid", color="black", weight=3]; 1854[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Neg Zero) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1854 -> 1954[label="",style="solid", color="black", weight=3]; 1855[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz37000))) (not (LT == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz37000))) (not (LT == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1855 -> 1955[label="",style="solid", color="black", weight=3]; 1856 -> 3251[label="",style="dashed", color="red", weight=0]; 1856[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz37000))) (not (primCmpNat vuz11000 (Succ vuz37000) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz37000))) (not (primCmpNat vuz11000 (Succ vuz37000) == LT)) `rem` Integer vuz94)",fontsize=16,color="magenta"];1856 -> 3252[label="",style="dashed", color="magenta", weight=3]; 1856 -> 3253[label="",style="dashed", color="magenta", weight=3]; 1856 -> 3254[label="",style="dashed", color="magenta", weight=3]; 1856 -> 3255[label="",style="dashed", color="magenta", weight=3]; 1856 -> 3256[label="",style="dashed", color="magenta", weight=3]; 1856 -> 3257[label="",style="dashed", color="magenta", weight=3]; 1857[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz110000)) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos (Succ vuz110000)) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1857 -> 1958[label="",style="solid", color="black", weight=3]; 1858[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1858 -> 1959[label="",style="solid", color="black", weight=3]; 1859[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz110000)) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg (Succ vuz110000)) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1859 -> 1960[label="",style="solid", color="black", weight=3]; 1860[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Neg Zero) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1860 -> 1961[label="",style="solid", color="black", weight=3]; 3138 -> 3027[label="",style="dashed", color="red", weight=0]; 3138[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not (primCmpNat vuz1790 vuz1800 == LT))",fontsize=16,color="magenta"];3138 -> 3160[label="",style="dashed", color="magenta", weight=3]; 3138 -> 3161[label="",style="dashed", color="magenta", weight=3]; 3139 -> 1673[label="",style="dashed", color="red", weight=0]; 3139[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not (GT == LT))",fontsize=16,color="magenta"];3139 -> 3162[label="",style="dashed", color="magenta", weight=3]; 3139 -> 3163[label="",style="dashed", color="magenta", weight=3]; 3140[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not (LT == LT))",fontsize=16,color="black",shape="box"];3140 -> 3164[label="",style="solid", color="black", weight=3]; 3141[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not (EQ == LT))",fontsize=16,color="black",shape="box"];3141 -> 3165[label="",style="solid", color="black", weight=3]; 2083[label="Pos (Succ vuz37000)",fontsize=16,color="green",shape="box"];2082[label="Integer vuz360 `quot` Integer vuz136",fontsize=16,color="black",shape="triangle"];2082 -> 2088[label="",style="solid", color="black", weight=3]; 1866[label="Integer vuz360 `quot` absReal1 (Integer (Pos Zero)) False",fontsize=16,color="black",shape="box"];1866 -> 1967[label="",style="solid", color="black", weight=3]; 1867 -> 2082[label="",style="dashed", color="red", weight=0]; 1867[label="Integer vuz360 `quot` Integer (Pos Zero)",fontsize=16,color="magenta"];1867 -> 2084[label="",style="dashed", color="magenta", weight=3]; 1868[label="Integer vuz360 `quot` absReal0 (Integer (Neg (Succ vuz37000))) True",fontsize=16,color="black",shape="box"];1868 -> 1969[label="",style="solid", color="black", weight=3]; 3156 -> 3072[label="",style="dashed", color="red", weight=0]; 3156[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not (primCmpNat vuz1840 vuz1850 == LT))",fontsize=16,color="magenta"];3156 -> 3177[label="",style="dashed", color="magenta", weight=3]; 3156 -> 3178[label="",style="dashed", color="magenta", weight=3]; 3157[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not (GT == LT))",fontsize=16,color="black",shape="box"];3157 -> 3179[label="",style="solid", color="black", weight=3]; 3158 -> 1678[label="",style="dashed", color="red", weight=0]; 3158[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not (LT == LT))",fontsize=16,color="magenta"];3158 -> 3180[label="",style="dashed", color="magenta", weight=3]; 3158 -> 3181[label="",style="dashed", color="magenta", weight=3]; 3159[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not (EQ == LT))",fontsize=16,color="black",shape="box"];3159 -> 3182[label="",style="solid", color="black", weight=3]; 1873[label="Integer vuz360 `quot` absReal0 (Integer (Neg Zero)) otherwise",fontsize=16,color="black",shape="box"];1873 -> 1974[label="",style="solid", color="black", weight=3]; 1874 -> 2082[label="",style="dashed", color="red", weight=0]; 1874[label="Integer vuz360 `quot` Integer (Neg Zero)",fontsize=16,color="magenta"];1874 -> 2085[label="",style="dashed", color="magenta", weight=3]; 3187[label="vuz360",fontsize=16,color="green",shape="box"];3188[label="vuz37000",fontsize=16,color="green",shape="box"];3189[label="vuz11000",fontsize=16,color="green",shape="box"];3190[label="Succ vuz37000",fontsize=16,color="green",shape="box"];3191[label="vuz94",fontsize=16,color="green",shape="box"];3192[label="vuz101",fontsize=16,color="green",shape="box"];3186[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat vuz189 vuz190 == LT)) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat vuz189 vuz190 == LT)) `rem` Integer vuz191)",fontsize=16,color="burlywood",shape="triangle"];3693[label="vuz189/Succ vuz1890",fontsize=10,color="white",style="solid",shape="box"];3186 -> 3693[label="",style="solid", color="burlywood", weight=9]; 3693 -> 3247[label="",style="solid", color="burlywood", weight=3]; 3694[label="vuz189/Zero",fontsize=10,color="white",style="solid",shape="box"];3186 -> 3694[label="",style="solid", color="burlywood", weight=9]; 3694 -> 3248[label="",style="solid", color="burlywood", weight=3]; 1950[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz37000))) (not False) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz37000))) (not False) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1950 -> 2003[label="",style="solid", color="black", weight=3]; 1951[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz110000) == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (primCmpNat Zero (Succ vuz110000) == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1951 -> 2004[label="",style="solid", color="black", weight=3]; 1952[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1952 -> 2005[label="",style="solid", color="black", weight=3]; 1953[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (GT == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (GT == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1953 -> 2006[label="",style="solid", color="black", weight=3]; 1954 -> 1952[label="",style="dashed", color="red", weight=0]; 1954[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (EQ == LT)) `rem` Integer vuz94)",fontsize=16,color="magenta"];1955[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz37000))) (not True) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz37000))) (not True) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1955 -> 2007[label="",style="solid", color="black", weight=3]; 3252[label="vuz360",fontsize=16,color="green",shape="box"];3253[label="vuz11000",fontsize=16,color="green",shape="box"];3254[label="Succ vuz37000",fontsize=16,color="green",shape="box"];3255[label="vuz101",fontsize=16,color="green",shape="box"];3256[label="vuz94",fontsize=16,color="green",shape="box"];3257[label="vuz37000",fontsize=16,color="green",shape="box"];3251[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat vuz196 vuz197 == LT)) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat vuz196 vuz197 == LT)) `rem` Integer vuz198)",fontsize=16,color="burlywood",shape="triangle"];3695[label="vuz196/Succ vuz1960",fontsize=10,color="white",style="solid",shape="box"];3251 -> 3695[label="",style="solid", color="burlywood", weight=9]; 3695 -> 3312[label="",style="solid", color="burlywood", weight=3]; 3696[label="vuz196/Zero",fontsize=10,color="white",style="solid",shape="box"];3251 -> 3696[label="",style="solid", color="burlywood", weight=9]; 3696 -> 3313[label="",style="solid", color="burlywood", weight=3]; 1958[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (LT == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (LT == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1958 -> 2010[label="",style="solid", color="black", weight=3]; 1959[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];1959 -> 2011[label="",style="solid", color="black", weight=3]; 1960[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz110000) Zero == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (primCmpNat (Succ vuz110000) Zero == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];1960 -> 2012[label="",style="solid", color="black", weight=3]; 1961 -> 1959[label="",style="dashed", color="red", weight=0]; 1961[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (EQ == LT)) `rem` Integer vuz94)",fontsize=16,color="magenta"];3160[label="vuz1800",fontsize=16,color="green",shape="box"];3161[label="vuz1790",fontsize=16,color="green",shape="box"];3162[label="vuz178",fontsize=16,color="green",shape="box"];3163[label="vuz177",fontsize=16,color="green",shape="box"];3164[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not True)",fontsize=16,color="black",shape="box"];3164 -> 3183[label="",style="solid", color="black", weight=3]; 3165 -> 1719[label="",style="dashed", color="red", weight=0]; 3165[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) (not False)",fontsize=16,color="magenta"];3165 -> 3184[label="",style="dashed", color="magenta", weight=3]; 3165 -> 3185[label="",style="dashed", color="magenta", weight=3]; 2088[label="Integer (primQuotInt vuz360 vuz136)",fontsize=16,color="green",shape="box"];2088 -> 2141[label="",style="dashed", color="green", weight=3]; 1967[label="Integer vuz360 `quot` absReal0 (Integer (Pos Zero)) otherwise",fontsize=16,color="black",shape="box"];1967 -> 2020[label="",style="solid", color="black", weight=3]; 2084[label="Pos Zero",fontsize=16,color="green",shape="box"];1969[label="Integer vuz360 `quot` (`negate` Integer (Neg (Succ vuz37000)))",fontsize=16,color="black",shape="box"];1969 -> 2022[label="",style="solid", color="black", weight=3]; 3177[label="vuz1840",fontsize=16,color="green",shape="box"];3178[label="vuz1850",fontsize=16,color="green",shape="box"];3179[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not False)",fontsize=16,color="black",shape="triangle"];3179 -> 3249[label="",style="solid", color="black", weight=3]; 3180[label="vuz182",fontsize=16,color="green",shape="box"];3181[label="vuz183",fontsize=16,color="green",shape="box"];3182 -> 3179[label="",style="dashed", color="red", weight=0]; 3182[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) (not False)",fontsize=16,color="magenta"];1974[label="Integer vuz360 `quot` absReal0 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];1974 -> 2028[label="",style="solid", color="black", weight=3]; 2085[label="Neg Zero",fontsize=16,color="green",shape="box"];3247[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat (Succ vuz1890) vuz190 == LT)) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat (Succ vuz1890) vuz190 == LT)) `rem` Integer vuz191)",fontsize=16,color="burlywood",shape="box"];3697[label="vuz190/Succ vuz1900",fontsize=10,color="white",style="solid",shape="box"];3247 -> 3697[label="",style="solid", color="burlywood", weight=9]; 3697 -> 3314[label="",style="solid", color="burlywood", weight=3]; 3698[label="vuz190/Zero",fontsize=10,color="white",style="solid",shape="box"];3247 -> 3698[label="",style="solid", color="burlywood", weight=9]; 3698 -> 3315[label="",style="solid", color="burlywood", weight=3]; 3248[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat Zero vuz190 == LT)) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat Zero vuz190 == LT)) `rem` Integer vuz191)",fontsize=16,color="burlywood",shape="box"];3699[label="vuz190/Succ vuz1900",fontsize=10,color="white",style="solid",shape="box"];3248 -> 3699[label="",style="solid", color="burlywood", weight=9]; 3699 -> 3316[label="",style="solid", color="burlywood", weight=3]; 3700[label="vuz190/Zero",fontsize=10,color="white",style="solid",shape="box"];3248 -> 3700[label="",style="solid", color="burlywood", weight=9]; 3700 -> 3317[label="",style="solid", color="burlywood", weight=3]; 2003[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz37000))) True `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos (Succ vuz37000))) True `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2003 -> 2062[label="",style="solid", color="black", weight=3]; 2004[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not (LT == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not (LT == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2004 -> 2063[label="",style="solid", color="black", weight=3]; 2005[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];2005 -> 2064[label="",style="solid", color="black", weight=3]; 2006 -> 2005[label="",style="dashed", color="red", weight=0]; 2006[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not False) `rem` Integer vuz94)",fontsize=16,color="magenta"];2007[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz37000))) False `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg (Succ vuz37000))) False `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2007 -> 2065[label="",style="solid", color="black", weight=3]; 3312[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat (Succ vuz1960) vuz197 == LT)) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat (Succ vuz1960) vuz197 == LT)) `rem` Integer vuz198)",fontsize=16,color="burlywood",shape="box"];3701[label="vuz197/Succ vuz1970",fontsize=10,color="white",style="solid",shape="box"];3312 -> 3701[label="",style="solid", color="burlywood", weight=9]; 3701 -> 3320[label="",style="solid", color="burlywood", weight=3]; 3702[label="vuz197/Zero",fontsize=10,color="white",style="solid",shape="box"];3312 -> 3702[label="",style="solid", color="burlywood", weight=9]; 3702 -> 3321[label="",style="solid", color="burlywood", weight=3]; 3313[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat Zero vuz197 == LT)) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat Zero vuz197 == LT)) `rem` Integer vuz198)",fontsize=16,color="burlywood",shape="box"];3703[label="vuz197/Succ vuz1970",fontsize=10,color="white",style="solid",shape="box"];3313 -> 3703[label="",style="solid", color="burlywood", weight=9]; 3703 -> 3322[label="",style="solid", color="burlywood", weight=3]; 3704[label="vuz197/Zero",fontsize=10,color="white",style="solid",shape="box"];3313 -> 3704[label="",style="solid", color="burlywood", weight=9]; 3704 -> 3323[label="",style="solid", color="burlywood", weight=3]; 2010[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not True) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not True) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2010 -> 2068[label="",style="solid", color="black", weight=3]; 2011[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];2011 -> 2069[label="",style="solid", color="black", weight=3]; 2012[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not (GT == LT)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not (GT == LT)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2012 -> 2070[label="",style="solid", color="black", weight=3]; 3183[label="Integer vuz177 `quot` absReal1 (Integer (Pos (Succ vuz178))) False",fontsize=16,color="black",shape="box"];3183 -> 3250[label="",style="solid", color="black", weight=3]; 3184[label="vuz178",fontsize=16,color="green",shape="box"];3185[label="vuz177",fontsize=16,color="green",shape="box"];2141[label="primQuotInt vuz360 vuz136",fontsize=16,color="burlywood",shape="box"];3705[label="vuz360/Pos vuz3600",fontsize=10,color="white",style="solid",shape="box"];2141 -> 3705[label="",style="solid", color="burlywood", weight=9]; 3705 -> 2189[label="",style="solid", color="burlywood", weight=3]; 3706[label="vuz360/Neg vuz3600",fontsize=10,color="white",style="solid",shape="box"];2141 -> 3706[label="",style="solid", color="burlywood", weight=9]; 3706 -> 2190[label="",style="solid", color="burlywood", weight=3]; 2020[label="Integer vuz360 `quot` absReal0 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];2020 -> 2079[label="",style="solid", color="black", weight=3]; 2022 -> 2082[label="",style="dashed", color="red", weight=0]; 2022[label="Integer vuz360 `quot` Integer (primNegInt (Neg (Succ vuz37000)))",fontsize=16,color="magenta"];2022 -> 2086[label="",style="dashed", color="magenta", weight=3]; 3249[label="Integer vuz182 `quot` absReal1 (Integer (Neg (Succ vuz183))) True",fontsize=16,color="black",shape="box"];3249 -> 3318[label="",style="solid", color="black", weight=3]; 2028[label="Integer vuz360 `quot` (`negate` Integer (Neg Zero))",fontsize=16,color="black",shape="box"];2028 -> 2094[label="",style="solid", color="black", weight=3]; 3314[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat (Succ vuz1890) (Succ vuz1900) == LT)) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat (Succ vuz1890) (Succ vuz1900) == LT)) `rem` Integer vuz191)",fontsize=16,color="black",shape="box"];3314 -> 3324[label="",style="solid", color="black", weight=3]; 3315[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat (Succ vuz1890) Zero == LT)) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat (Succ vuz1890) Zero == LT)) `rem` Integer vuz191)",fontsize=16,color="black",shape="box"];3315 -> 3325[label="",style="solid", color="black", weight=3]; 3316[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat Zero (Succ vuz1900) == LT)) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat Zero (Succ vuz1900) == LT)) `rem` Integer vuz191)",fontsize=16,color="black",shape="box"];3316 -> 3326[label="",style="solid", color="black", weight=3]; 3317[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz191)",fontsize=16,color="black",shape="box"];3317 -> 3327[label="",style="solid", color="black", weight=3]; 2062 -> 2494[label="",style="dashed", color="red", weight=0]; 2062[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (Pos (Succ vuz37000)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer (Pos (Succ vuz37000)) `rem` Integer vuz94)",fontsize=16,color="magenta"];2062 -> 2495[label="",style="dashed", color="magenta", weight=3]; 2062 -> 2496[label="",style="dashed", color="magenta", weight=3]; 2063[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) (not True) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) (not True) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2063 -> 2156[label="",style="solid", color="black", weight=3]; 2064[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) True `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) True `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2064 -> 2157[label="",style="solid", color="black", weight=3]; 2065[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg (Succ vuz37000))) otherwise `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal0 (Integer (Neg (Succ vuz37000))) otherwise `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2065 -> 2158[label="",style="solid", color="black", weight=3]; 3320[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat (Succ vuz1960) (Succ vuz1970) == LT)) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat (Succ vuz1960) (Succ vuz1970) == LT)) `rem` Integer vuz198)",fontsize=16,color="black",shape="box"];3320 -> 3331[label="",style="solid", color="black", weight=3]; 3321[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat (Succ vuz1960) Zero == LT)) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat (Succ vuz1960) Zero == LT)) `rem` Integer vuz198)",fontsize=16,color="black",shape="box"];3321 -> 3332[label="",style="solid", color="black", weight=3]; 3322[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat Zero (Succ vuz1970) == LT)) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat Zero (Succ vuz1970) == LT)) `rem` Integer vuz198)",fontsize=16,color="black",shape="box"];3322 -> 3333[label="",style="solid", color="black", weight=3]; 3323[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat Zero Zero == LT)) `rem` Integer vuz198)",fontsize=16,color="black",shape="box"];3323 -> 3334[label="",style="solid", color="black", weight=3]; 2068[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) False `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) False `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2068 -> 2163[label="",style="solid", color="black", weight=3]; 2069[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) True `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) True `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2069 -> 2164[label="",style="solid", color="black", weight=3]; 2070 -> 2011[label="",style="dashed", color="red", weight=0]; 2070[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Neg Zero)) (not False) `rem` Integer vuz94)",fontsize=16,color="magenta"];3250[label="Integer vuz177 `quot` absReal0 (Integer (Pos (Succ vuz178))) otherwise",fontsize=16,color="black",shape="box"];3250 -> 3319[label="",style="solid", color="black", weight=3]; 2189[label="primQuotInt (Pos vuz3600) vuz136",fontsize=16,color="burlywood",shape="box"];3707[label="vuz136/Pos vuz1360",fontsize=10,color="white",style="solid",shape="box"];2189 -> 3707[label="",style="solid", color="burlywood", weight=9]; 3707 -> 2256[label="",style="solid", color="burlywood", weight=3]; 3708[label="vuz136/Neg vuz1360",fontsize=10,color="white",style="solid",shape="box"];2189 -> 3708[label="",style="solid", color="burlywood", weight=9]; 3708 -> 2257[label="",style="solid", color="burlywood", weight=3]; 2190[label="primQuotInt (Neg vuz3600) vuz136",fontsize=16,color="burlywood",shape="box"];3709[label="vuz136/Pos vuz1360",fontsize=10,color="white",style="solid",shape="box"];2190 -> 3709[label="",style="solid", color="burlywood", weight=9]; 3709 -> 2258[label="",style="solid", color="burlywood", weight=3]; 3710[label="vuz136/Neg vuz1360",fontsize=10,color="white",style="solid",shape="box"];2190 -> 3710[label="",style="solid", color="burlywood", weight=9]; 3710 -> 2259[label="",style="solid", color="burlywood", weight=3]; 2079[label="Integer vuz360 `quot` (`negate` Integer (Pos Zero))",fontsize=16,color="black",shape="box"];2079 -> 2170[label="",style="solid", color="black", weight=3]; 2086 -> 923[label="",style="dashed", color="red", weight=0]; 2086[label="primNegInt (Neg (Succ vuz37000))",fontsize=16,color="magenta"];2086 -> 2171[label="",style="dashed", color="magenta", weight=3]; 3318 -> 2082[label="",style="dashed", color="red", weight=0]; 3318[label="Integer vuz182 `quot` Integer (Neg (Succ vuz183))",fontsize=16,color="magenta"];3318 -> 3328[label="",style="dashed", color="magenta", weight=3]; 3318 -> 3329[label="",style="dashed", color="magenta", weight=3]; 2094 -> 2082[label="",style="dashed", color="red", weight=0]; 2094[label="Integer vuz360 `quot` Integer (primNegInt (Neg Zero))",fontsize=16,color="magenta"];2094 -> 2177[label="",style="dashed", color="magenta", weight=3]; 3324 -> 3186[label="",style="dashed", color="red", weight=0]; 3324[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat vuz1890 vuz1900 == LT)) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not (primCmpNat vuz1890 vuz1900 == LT)) `rem` Integer vuz191)",fontsize=16,color="magenta"];3324 -> 3335[label="",style="dashed", color="magenta", weight=3]; 3324 -> 3336[label="",style="dashed", color="magenta", weight=3]; 3325 -> 1850[label="",style="dashed", color="red", weight=0]; 3325[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not (GT == LT)) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not (GT == LT)) `rem` Integer vuz191)",fontsize=16,color="magenta"];3325 -> 3337[label="",style="dashed", color="magenta", weight=3]; 3325 -> 3338[label="",style="dashed", color="magenta", weight=3]; 3325 -> 3339[label="",style="dashed", color="magenta", weight=3]; 3325 -> 3340[label="",style="dashed", color="magenta", weight=3]; 3326[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not (LT == LT)) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not (LT == LT)) `rem` Integer vuz191)",fontsize=16,color="black",shape="box"];3326 -> 3341[label="",style="solid", color="black", weight=3]; 3327[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not (EQ == LT)) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not (EQ == LT)) `rem` Integer vuz191)",fontsize=16,color="black",shape="box"];3327 -> 3342[label="",style="solid", color="black", weight=3]; 2495[label="Pos (Succ vuz37000)",fontsize=16,color="green",shape="box"];2496[label="Pos (Succ vuz37000)",fontsize=16,color="green",shape="box"];2494[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer vuz163 `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer vuz162 `rem` Integer vuz94)",fontsize=16,color="black",shape="triangle"];2494 -> 2516[label="",style="solid", color="black", weight=3]; 2156[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos Zero)) False `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal1 (Integer (Pos Zero)) False `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2156 -> 2271[label="",style="solid", color="black", weight=3]; 2157 -> 2494[label="",style="dashed", color="red", weight=0]; 2157[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (Pos Zero) `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer (Pos Zero) `rem` Integer vuz94)",fontsize=16,color="magenta"];2157 -> 2497[label="",style="dashed", color="magenta", weight=3]; 2157 -> 2498[label="",style="dashed", color="magenta", weight=3]; 2158[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg (Succ vuz37000))) True `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal0 (Integer (Neg (Succ vuz37000))) True `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2158 -> 2273[label="",style="solid", color="black", weight=3]; 3331 -> 3251[label="",style="dashed", color="red", weight=0]; 3331[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat vuz1960 vuz1970 == LT)) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not (primCmpNat vuz1960 vuz1970 == LT)) `rem` Integer vuz198)",fontsize=16,color="magenta"];3331 -> 3344[label="",style="dashed", color="magenta", weight=3]; 3331 -> 3345[label="",style="dashed", color="magenta", weight=3]; 3332[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not (GT == LT)) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not (GT == LT)) `rem` Integer vuz198)",fontsize=16,color="black",shape="box"];3332 -> 3346[label="",style="solid", color="black", weight=3]; 3333 -> 1855[label="",style="dashed", color="red", weight=0]; 3333[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not (LT == LT)) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not (LT == LT)) `rem` Integer vuz198)",fontsize=16,color="magenta"];3333 -> 3347[label="",style="dashed", color="magenta", weight=3]; 3333 -> 3348[label="",style="dashed", color="magenta", weight=3]; 3333 -> 3349[label="",style="dashed", color="magenta", weight=3]; 3333 -> 3350[label="",style="dashed", color="magenta", weight=3]; 3334[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not (EQ == LT)) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not (EQ == LT)) `rem` Integer vuz198)",fontsize=16,color="black",shape="box"];3334 -> 3351[label="",style="solid", color="black", weight=3]; 2163[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg Zero)) otherwise `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal0 (Integer (Neg Zero)) otherwise `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2163 -> 2278[label="",style="solid", color="black", weight=3]; 2164 -> 2494[label="",style="dashed", color="red", weight=0]; 2164[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (Neg Zero) `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer (Neg Zero) `rem` Integer vuz94)",fontsize=16,color="magenta"];2164 -> 2499[label="",style="dashed", color="magenta", weight=3]; 2164 -> 2500[label="",style="dashed", color="magenta", weight=3]; 3319[label="Integer vuz177 `quot` absReal0 (Integer (Pos (Succ vuz178))) True",fontsize=16,color="black",shape="box"];3319 -> 3330[label="",style="solid", color="black", weight=3]; 2256[label="primQuotInt (Pos vuz3600) (Pos vuz1360)",fontsize=16,color="burlywood",shape="box"];3711[label="vuz1360/Succ vuz13600",fontsize=10,color="white",style="solid",shape="box"];2256 -> 3711[label="",style="solid", color="burlywood", weight=9]; 3711 -> 2286[label="",style="solid", color="burlywood", weight=3]; 3712[label="vuz1360/Zero",fontsize=10,color="white",style="solid",shape="box"];2256 -> 3712[label="",style="solid", color="burlywood", weight=9]; 3712 -> 2287[label="",style="solid", color="burlywood", weight=3]; 2257[label="primQuotInt (Pos vuz3600) (Neg vuz1360)",fontsize=16,color="burlywood",shape="box"];3713[label="vuz1360/Succ vuz13600",fontsize=10,color="white",style="solid",shape="box"];2257 -> 3713[label="",style="solid", color="burlywood", weight=9]; 3713 -> 2288[label="",style="solid", color="burlywood", weight=3]; 3714[label="vuz1360/Zero",fontsize=10,color="white",style="solid",shape="box"];2257 -> 3714[label="",style="solid", color="burlywood", weight=9]; 3714 -> 2289[label="",style="solid", color="burlywood", weight=3]; 2258[label="primQuotInt (Neg vuz3600) (Pos vuz1360)",fontsize=16,color="burlywood",shape="box"];3715[label="vuz1360/Succ vuz13600",fontsize=10,color="white",style="solid",shape="box"];2258 -> 3715[label="",style="solid", color="burlywood", weight=9]; 3715 -> 2290[label="",style="solid", color="burlywood", weight=3]; 3716[label="vuz1360/Zero",fontsize=10,color="white",style="solid",shape="box"];2258 -> 3716[label="",style="solid", color="burlywood", weight=9]; 3716 -> 2291[label="",style="solid", color="burlywood", weight=3]; 2259[label="primQuotInt (Neg vuz3600) (Neg vuz1360)",fontsize=16,color="burlywood",shape="box"];3717[label="vuz1360/Succ vuz13600",fontsize=10,color="white",style="solid",shape="box"];2259 -> 3717[label="",style="solid", color="burlywood", weight=9]; 3717 -> 2292[label="",style="solid", color="burlywood", weight=3]; 3718[label="vuz1360/Zero",fontsize=10,color="white",style="solid",shape="box"];2259 -> 3718[label="",style="solid", color="burlywood", weight=9]; 3718 -> 2293[label="",style="solid", color="burlywood", weight=3]; 2170 -> 2082[label="",style="dashed", color="red", weight=0]; 2170[label="Integer vuz360 `quot` Integer (primNegInt (Pos Zero))",fontsize=16,color="magenta"];2170 -> 2294[label="",style="dashed", color="magenta", weight=3]; 2171[label="vuz37000",fontsize=16,color="green",shape="box"];3328[label="Neg (Succ vuz183)",fontsize=16,color="green",shape="box"];3329[label="vuz182",fontsize=16,color="green",shape="box"];2177 -> 963[label="",style="dashed", color="red", weight=0]; 2177[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];3335[label="vuz1900",fontsize=16,color="green",shape="box"];3336[label="vuz1890",fontsize=16,color="green",shape="box"];3337[label="vuz192",fontsize=16,color="green",shape="box"];3338[label="vuz188",fontsize=16,color="green",shape="box"];3339[label="vuz191",fontsize=16,color="green",shape="box"];3340[label="vuz187",fontsize=16,color="green",shape="box"];3341[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not True) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not True) `rem` Integer vuz191)",fontsize=16,color="black",shape="box"];3341 -> 3352[label="",style="solid", color="black", weight=3]; 3342 -> 1950[label="",style="dashed", color="red", weight=0]; 3342[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) (not False) `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) (not False) `rem` Integer vuz191)",fontsize=16,color="magenta"];3342 -> 3353[label="",style="dashed", color="magenta", weight=3]; 3342 -> 3354[label="",style="dashed", color="magenta", weight=3]; 3342 -> 3355[label="",style="dashed", color="magenta", weight=3]; 3342 -> 3356[label="",style="dashed", color="magenta", weight=3]; 2516 -> 2552[label="",style="dashed", color="red", weight=0]; 2516[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (primRemInt vuz163 vuz94) == vuz101) (Integer vuz94) (Integer (primRemInt vuz163 vuz94))",fontsize=16,color="magenta"];2516 -> 2553[label="",style="dashed", color="magenta", weight=3]; 2516 -> 2554[label="",style="dashed", color="magenta", weight=3]; 2271[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos Zero)) otherwise `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal0 (Integer (Pos Zero)) otherwise `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2271 -> 2383[label="",style="solid", color="black", weight=3]; 2497[label="Pos Zero",fontsize=16,color="green",shape="box"];2498[label="Pos Zero",fontsize=16,color="green",shape="box"];2273[label="Integer vuz360 `quot` gcd0Gcd'1 ((`negate` Integer (Neg (Succ vuz37000))) `rem` Integer vuz94 == vuz101) (Integer vuz94) ((`negate` Integer (Neg (Succ vuz37000))) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2273 -> 2386[label="",style="solid", color="black", weight=3]; 3344[label="vuz1960",fontsize=16,color="green",shape="box"];3345[label="vuz1970",fontsize=16,color="green",shape="box"];3346[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not False) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not False) `rem` Integer vuz198)",fontsize=16,color="black",shape="triangle"];3346 -> 3359[label="",style="solid", color="black", weight=3]; 3347[label="vuz199",fontsize=16,color="green",shape="box"];3348[label="vuz198",fontsize=16,color="green",shape="box"];3349[label="vuz194",fontsize=16,color="green",shape="box"];3350[label="vuz195",fontsize=16,color="green",shape="box"];3351 -> 3346[label="",style="dashed", color="red", weight=0]; 3351[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) (not False) `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) (not False) `rem` Integer vuz198)",fontsize=16,color="magenta"];2278[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal0 (Integer (Neg Zero)) True `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal0 (Integer (Neg Zero)) True `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2278 -> 2392[label="",style="solid", color="black", weight=3]; 2499[label="Neg Zero",fontsize=16,color="green",shape="box"];2500[label="Neg Zero",fontsize=16,color="green",shape="box"];3330[label="Integer vuz177 `quot` (`negate` Integer (Pos (Succ vuz178)))",fontsize=16,color="black",shape="box"];3330 -> 3343[label="",style="solid", color="black", weight=3]; 2286[label="primQuotInt (Pos vuz3600) (Pos (Succ vuz13600))",fontsize=16,color="black",shape="box"];2286 -> 2402[label="",style="solid", color="black", weight=3]; 2287[label="primQuotInt (Pos vuz3600) (Pos Zero)",fontsize=16,color="black",shape="box"];2287 -> 2403[label="",style="solid", color="black", weight=3]; 2288[label="primQuotInt (Pos vuz3600) (Neg (Succ vuz13600))",fontsize=16,color="black",shape="box"];2288 -> 2404[label="",style="solid", color="black", weight=3]; 2289[label="primQuotInt (Pos vuz3600) (Neg Zero)",fontsize=16,color="black",shape="box"];2289 -> 2405[label="",style="solid", color="black", weight=3]; 2290[label="primQuotInt (Neg vuz3600) (Pos (Succ vuz13600))",fontsize=16,color="black",shape="box"];2290 -> 2406[label="",style="solid", color="black", weight=3]; 2291[label="primQuotInt (Neg vuz3600) (Pos Zero)",fontsize=16,color="black",shape="box"];2291 -> 2407[label="",style="solid", color="black", weight=3]; 2292[label="primQuotInt (Neg vuz3600) (Neg (Succ vuz13600))",fontsize=16,color="black",shape="box"];2292 -> 2408[label="",style="solid", color="black", weight=3]; 2293[label="primQuotInt (Neg vuz3600) (Neg Zero)",fontsize=16,color="black",shape="box"];2293 -> 2409[label="",style="solid", color="black", weight=3]; 2294 -> 985[label="",style="dashed", color="red", weight=0]; 2294[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];3352[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal1 (Integer (Pos (Succ vuz188))) False `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal1 (Integer (Pos (Succ vuz188))) False `rem` Integer vuz191)",fontsize=16,color="black",shape="box"];3352 -> 3360[label="",style="solid", color="black", weight=3]; 3353[label="vuz192",fontsize=16,color="green",shape="box"];3354[label="vuz188",fontsize=16,color="green",shape="box"];3355[label="vuz191",fontsize=16,color="green",shape="box"];3356[label="vuz187",fontsize=16,color="green",shape="box"];2553 -> 642[label="",style="dashed", color="red", weight=0]; 2553[label="primRemInt vuz163 vuz94",fontsize=16,color="magenta"];2553 -> 2561[label="",style="dashed", color="magenta", weight=3]; 2553 -> 2562[label="",style="dashed", color="magenta", weight=3]; 2554 -> 211[label="",style="dashed", color="red", weight=0]; 2554[label="Integer (primRemInt vuz163 vuz94) == vuz101",fontsize=16,color="magenta"];2554 -> 2563[label="",style="dashed", color="magenta", weight=3]; 2554 -> 2564[label="",style="dashed", color="magenta", weight=3]; 2552[label="Integer vuz360 `quot` gcd0Gcd'1 vuz164 (Integer vuz94) (Integer vuz165)",fontsize=16,color="burlywood",shape="triangle"];3719[label="vuz164/False",fontsize=10,color="white",style="solid",shape="box"];2552 -> 3719[label="",style="solid", color="burlywood", weight=9]; 3719 -> 2565[label="",style="solid", color="burlywood", weight=3]; 3720[label="vuz164/True",fontsize=10,color="white",style="solid",shape="box"];2552 -> 3720[label="",style="solid", color="burlywood", weight=9]; 3720 -> 2566[label="",style="solid", color="burlywood", weight=3]; 2383[label="Integer vuz360 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos Zero)) True `rem` Integer vuz94 == vuz101) (Integer vuz94) (absReal0 (Integer (Pos Zero)) True `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2383 -> 2489[label="",style="solid", color="black", weight=3]; 2386 -> 2494[label="",style="dashed", color="red", weight=0]; 2386[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (primNegInt (Neg (Succ vuz37000))) `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer (primNegInt (Neg (Succ vuz37000))) `rem` Integer vuz94)",fontsize=16,color="magenta"];2386 -> 2501[label="",style="dashed", color="magenta", weight=3]; 2386 -> 2502[label="",style="dashed", color="magenta", weight=3]; 3359[label="Integer vuz194 `quot` gcd0Gcd'1 (absReal1 (Integer (Neg (Succ vuz195))) True `rem` Integer vuz198 == vuz199) (Integer vuz198) (absReal1 (Integer (Neg (Succ vuz195))) True `rem` Integer vuz198)",fontsize=16,color="black",shape="box"];3359 -> 3362[label="",style="solid", color="black", weight=3]; 2392[label="Integer vuz360 `quot` gcd0Gcd'1 ((`negate` Integer (Neg Zero)) `rem` Integer vuz94 == vuz101) (Integer vuz94) ((`negate` Integer (Neg Zero)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2392 -> 2522[label="",style="solid", color="black", weight=3]; 3343 -> 2082[label="",style="dashed", color="red", weight=0]; 3343[label="Integer vuz177 `quot` Integer (primNegInt (Pos (Succ vuz178)))",fontsize=16,color="magenta"];3343 -> 3357[label="",style="dashed", color="magenta", weight=3]; 3343 -> 3358[label="",style="dashed", color="magenta", weight=3]; 2402[label="Pos (primDivNatS vuz3600 (Succ vuz13600))",fontsize=16,color="green",shape="box"];2402 -> 2529[label="",style="dashed", color="green", weight=3]; 2403 -> 484[label="",style="dashed", color="red", weight=0]; 2403[label="error []",fontsize=16,color="magenta"];2404[label="Neg (primDivNatS vuz3600 (Succ vuz13600))",fontsize=16,color="green",shape="box"];2404 -> 2530[label="",style="dashed", color="green", weight=3]; 2405 -> 484[label="",style="dashed", color="red", weight=0]; 2405[label="error []",fontsize=16,color="magenta"];2406[label="Neg (primDivNatS vuz3600 (Succ vuz13600))",fontsize=16,color="green",shape="box"];2406 -> 2531[label="",style="dashed", color="green", weight=3]; 2407 -> 484[label="",style="dashed", color="red", weight=0]; 2407[label="error []",fontsize=16,color="magenta"];2408[label="Pos (primDivNatS vuz3600 (Succ vuz13600))",fontsize=16,color="green",shape="box"];2408 -> 2532[label="",style="dashed", color="green", weight=3]; 2409 -> 484[label="",style="dashed", color="red", weight=0]; 2409[label="error []",fontsize=16,color="magenta"];3360[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos (Succ vuz188))) otherwise `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal0 (Integer (Pos (Succ vuz188))) otherwise `rem` Integer vuz191)",fontsize=16,color="black",shape="box"];3360 -> 3363[label="",style="solid", color="black", weight=3]; 2561[label="vuz94",fontsize=16,color="green",shape="box"];2562[label="vuz163",fontsize=16,color="green",shape="box"];2563 -> 642[label="",style="dashed", color="red", weight=0]; 2563[label="primRemInt vuz163 vuz94",fontsize=16,color="magenta"];2563 -> 2610[label="",style="dashed", color="magenta", weight=3]; 2563 -> 2611[label="",style="dashed", color="magenta", weight=3]; 2564[label="vuz101",fontsize=16,color="green",shape="box"];2565[label="Integer vuz360 `quot` gcd0Gcd'1 False (Integer vuz94) (Integer vuz165)",fontsize=16,color="black",shape="box"];2565 -> 2612[label="",style="solid", color="black", weight=3]; 2566[label="Integer vuz360 `quot` gcd0Gcd'1 True (Integer vuz94) (Integer vuz165)",fontsize=16,color="black",shape="box"];2566 -> 2613[label="",style="solid", color="black", weight=3]; 2489[label="Integer vuz360 `quot` gcd0Gcd'1 ((`negate` Integer (Pos Zero)) `rem` Integer vuz94 == vuz101) (Integer vuz94) ((`negate` Integer (Pos Zero)) `rem` Integer vuz94)",fontsize=16,color="black",shape="box"];2489 -> 2543[label="",style="solid", color="black", weight=3]; 2501 -> 923[label="",style="dashed", color="red", weight=0]; 2501[label="primNegInt (Neg (Succ vuz37000))",fontsize=16,color="magenta"];2501 -> 2544[label="",style="dashed", color="magenta", weight=3]; 2502 -> 923[label="",style="dashed", color="red", weight=0]; 2502[label="primNegInt (Neg (Succ vuz37000))",fontsize=16,color="magenta"];2502 -> 2545[label="",style="dashed", color="magenta", weight=3]; 3362 -> 2494[label="",style="dashed", color="red", weight=0]; 3362[label="Integer vuz194 `quot` gcd0Gcd'1 (Integer (Neg (Succ vuz195)) `rem` Integer vuz198 == vuz199) (Integer vuz198) (Integer (Neg (Succ vuz195)) `rem` Integer vuz198)",fontsize=16,color="magenta"];3362 -> 3364[label="",style="dashed", color="magenta", weight=3]; 3362 -> 3365[label="",style="dashed", color="magenta", weight=3]; 3362 -> 3366[label="",style="dashed", color="magenta", weight=3]; 3362 -> 3367[label="",style="dashed", color="magenta", weight=3]; 3362 -> 3368[label="",style="dashed", color="magenta", weight=3]; 2522 -> 2494[label="",style="dashed", color="red", weight=0]; 2522[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (primNegInt (Neg Zero)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer (primNegInt (Neg Zero)) `rem` Integer vuz94)",fontsize=16,color="magenta"];2522 -> 2572[label="",style="dashed", color="magenta", weight=3]; 2522 -> 2573[label="",style="dashed", color="magenta", weight=3]; 3357 -> 1701[label="",style="dashed", color="red", weight=0]; 3357[label="primNegInt (Pos (Succ vuz178))",fontsize=16,color="magenta"];3357 -> 3361[label="",style="dashed", color="magenta", weight=3]; 3358[label="vuz177",fontsize=16,color="green",shape="box"];2529 -> 497[label="",style="dashed", color="red", weight=0]; 2529[label="primDivNatS vuz3600 (Succ vuz13600)",fontsize=16,color="magenta"];2529 -> 2581[label="",style="dashed", color="magenta", weight=3]; 2529 -> 2582[label="",style="dashed", color="magenta", weight=3]; 2530 -> 497[label="",style="dashed", color="red", weight=0]; 2530[label="primDivNatS vuz3600 (Succ vuz13600)",fontsize=16,color="magenta"];2530 -> 2583[label="",style="dashed", color="magenta", weight=3]; 2530 -> 2584[label="",style="dashed", color="magenta", weight=3]; 2531 -> 497[label="",style="dashed", color="red", weight=0]; 2531[label="primDivNatS vuz3600 (Succ vuz13600)",fontsize=16,color="magenta"];2531 -> 2585[label="",style="dashed", color="magenta", weight=3]; 2531 -> 2586[label="",style="dashed", color="magenta", weight=3]; 2532 -> 497[label="",style="dashed", color="red", weight=0]; 2532[label="primDivNatS vuz3600 (Succ vuz13600)",fontsize=16,color="magenta"];2532 -> 2587[label="",style="dashed", color="magenta", weight=3]; 2532 -> 2588[label="",style="dashed", color="magenta", weight=3]; 3363[label="Integer vuz187 `quot` gcd0Gcd'1 (absReal0 (Integer (Pos (Succ vuz188))) True `rem` Integer vuz191 == vuz192) (Integer vuz191) (absReal0 (Integer (Pos (Succ vuz188))) True `rem` Integer vuz191)",fontsize=16,color="black",shape="box"];3363 -> 3369[label="",style="solid", color="black", weight=3]; 2610[label="vuz94",fontsize=16,color="green",shape="box"];2611[label="vuz163",fontsize=16,color="green",shape="box"];2612[label="Integer vuz360 `quot` gcd0Gcd'0 (Integer vuz94) (Integer vuz165)",fontsize=16,color="black",shape="box"];2612 -> 2649[label="",style="solid", color="black", weight=3]; 2613 -> 2082[label="",style="dashed", color="red", weight=0]; 2613[label="Integer vuz360 `quot` Integer vuz94",fontsize=16,color="magenta"];2613 -> 2650[label="",style="dashed", color="magenta", weight=3]; 2543 -> 2494[label="",style="dashed", color="red", weight=0]; 2543[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer (primNegInt (Pos Zero)) `rem` Integer vuz94 == vuz101) (Integer vuz94) (Integer (primNegInt (Pos Zero)) `rem` Integer vuz94)",fontsize=16,color="magenta"];2543 -> 2601[label="",style="dashed", color="magenta", weight=3]; 2543 -> 2602[label="",style="dashed", color="magenta", weight=3]; 2544[label="vuz37000",fontsize=16,color="green",shape="box"];2545[label="vuz37000",fontsize=16,color="green",shape="box"];3364[label="Neg (Succ vuz195)",fontsize=16,color="green",shape="box"];3365[label="vuz199",fontsize=16,color="green",shape="box"];3366[label="vuz198",fontsize=16,color="green",shape="box"];3367[label="Neg (Succ vuz195)",fontsize=16,color="green",shape="box"];3368[label="vuz194",fontsize=16,color="green",shape="box"];2572 -> 963[label="",style="dashed", color="red", weight=0]; 2572[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];2573 -> 963[label="",style="dashed", color="red", weight=0]; 2573[label="primNegInt (Neg Zero)",fontsize=16,color="magenta"];3361[label="vuz178",fontsize=16,color="green",shape="box"];2581[label="vuz3600",fontsize=16,color="green",shape="box"];2582[label="vuz13600",fontsize=16,color="green",shape="box"];2583[label="vuz3600",fontsize=16,color="green",shape="box"];2584[label="vuz13600",fontsize=16,color="green",shape="box"];2585[label="vuz3600",fontsize=16,color="green",shape="box"];2586[label="vuz13600",fontsize=16,color="green",shape="box"];2587[label="vuz3600",fontsize=16,color="green",shape="box"];2588[label="vuz13600",fontsize=16,color="green",shape="box"];3369[label="Integer vuz187 `quot` gcd0Gcd'1 ((`negate` Integer (Pos (Succ vuz188))) `rem` Integer vuz191 == vuz192) (Integer vuz191) ((`negate` Integer (Pos (Succ vuz188))) `rem` Integer vuz191)",fontsize=16,color="black",shape="box"];3369 -> 3370[label="",style="solid", color="black", weight=3]; 2649[label="Integer vuz360 `quot` gcd0Gcd' (Integer vuz165) (Integer vuz94 `rem` Integer vuz165)",fontsize=16,color="black",shape="box"];2649 -> 2676[label="",style="solid", color="black", weight=3]; 2650[label="vuz94",fontsize=16,color="green",shape="box"];2601 -> 985[label="",style="dashed", color="red", weight=0]; 2601[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];2602 -> 985[label="",style="dashed", color="red", weight=0]; 2602[label="primNegInt (Pos Zero)",fontsize=16,color="magenta"];3370 -> 2494[label="",style="dashed", color="red", weight=0]; 3370[label="Integer vuz187 `quot` gcd0Gcd'1 (Integer (primNegInt (Pos (Succ vuz188))) `rem` Integer vuz191 == vuz192) (Integer vuz191) (Integer (primNegInt (Pos (Succ vuz188))) `rem` Integer vuz191)",fontsize=16,color="magenta"];3370 -> 3371[label="",style="dashed", color="magenta", weight=3]; 3370 -> 3372[label="",style="dashed", color="magenta", weight=3]; 3370 -> 3373[label="",style="dashed", color="magenta", weight=3]; 3370 -> 3374[label="",style="dashed", color="magenta", weight=3]; 3370 -> 3375[label="",style="dashed", color="magenta", weight=3]; 2676[label="Integer vuz360 `quot` gcd0Gcd'2 (Integer vuz165) (Integer vuz94 `rem` Integer vuz165)",fontsize=16,color="black",shape="box"];2676 -> 2704[label="",style="solid", color="black", weight=3]; 3371 -> 1701[label="",style="dashed", color="red", weight=0]; 3371[label="primNegInt (Pos (Succ vuz188))",fontsize=16,color="magenta"];3371 -> 3376[label="",style="dashed", color="magenta", weight=3]; 3372[label="vuz192",fontsize=16,color="green",shape="box"];3373[label="vuz191",fontsize=16,color="green",shape="box"];3374 -> 1701[label="",style="dashed", color="red", weight=0]; 3374[label="primNegInt (Pos (Succ vuz188))",fontsize=16,color="magenta"];3374 -> 3377[label="",style="dashed", color="magenta", weight=3]; 3375[label="vuz187",fontsize=16,color="green",shape="box"];2704 -> 2494[label="",style="dashed", color="red", weight=0]; 2704[label="Integer vuz360 `quot` gcd0Gcd'1 (Integer vuz94 `rem` Integer vuz165 == fromInt (Pos Zero)) (Integer vuz165) (Integer vuz94 `rem` Integer vuz165)",fontsize=16,color="magenta"];2704 -> 2734[label="",style="dashed", color="magenta", weight=3]; 2704 -> 2735[label="",style="dashed", color="magenta", weight=3]; 2704 -> 2736[label="",style="dashed", color="magenta", weight=3]; 2704 -> 2737[label="",style="dashed", color="magenta", weight=3]; 3376[label="vuz188",fontsize=16,color="green",shape="box"];3377[label="vuz188",fontsize=16,color="green",shape="box"];2734[label="vuz94",fontsize=16,color="green",shape="box"];2735 -> 12[label="",style="dashed", color="red", weight=0]; 2735[label="fromInt (Pos Zero)",fontsize=16,color="magenta"];2736[label="vuz165",fontsize=16,color="green",shape="box"];2737[label="vuz94",fontsize=16,color="green",shape="box"];} ---------------------------------------- (1300) TRUE