/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.hs /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox/benchmark/theBenchmark.hs # AProVE Commit ID: 794c25de1cacf0d048858bcd21c9a779e1221865 marcel 20200619 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, 22 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) DependencyGraphProof [EQUIVALENT, 0 ms] (15) AND (16) QDP (17) QDPOrderProof [EQUIVALENT, 43 ms] (18) QDP (19) DependencyGraphProof [EQUIVALENT, 0 ms] (20) QDP (21) QDPSizeChangeProof [EQUIVALENT, 0 ms] (22) YES (23) QDP (24) MRRProof [EQUIVALENT, 0 ms] (25) QDP (26) PisEmptyProof [EQUIVALENT, 0 ms] (27) YES (28) QDP (29) MNOCProof [EQUIVALENT, 0 ms] (30) QDP (31) InductionCalculusProof [EQUIVALENT, 0 ms] (32) QDP (33) TransformationProof [EQUIVALENT, 0 ms] (34) QDP (35) TransformationProof [EQUIVALENT, 0 ms] (36) QDP (37) UsableRulesProof [EQUIVALENT, 0 ms] (38) QDP (39) QReductionProof [EQUIVALENT, 0 ms] (40) QDP (41) TransformationProof [EQUIVALENT, 0 ms] (42) QDP (43) UsableRulesProof [EQUIVALENT, 0 ms] (44) QDP (45) QReductionProof [EQUIVALENT, 0 ms] (46) QDP (47) TransformationProof [EQUIVALENT, 0 ms] (48) QDP (49) TransformationProof [EQUIVALENT, 0 ms] (50) QDP (51) DependencyGraphProof [EQUIVALENT, 0 ms] (52) QDP (53) TransformationProof [EQUIVALENT, 0 ms] (54) QDP (55) DependencyGraphProof [EQUIVALENT, 0 ms] (56) QDP (57) TransformationProof [EQUIVALENT, 0 ms] (58) QDP (59) DependencyGraphProof [EQUIVALENT, 0 ms] (60) QDP (61) TransformationProof [EQUIVALENT, 0 ms] (62) QDP (63) DependencyGraphProof [EQUIVALENT, 0 ms] (64) QDP (65) TransformationProof [EQUIVALENT, 0 ms] (66) QDP (67) DependencyGraphProof [EQUIVALENT, 0 ms] (68) AND (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) DependencyGraphProof [EQUIVALENT, 0 ms] (81) QDP (82) TransformationProof [EQUIVALENT, 0 ms] (83) QDP (84) TransformationProof [EQUIVALENT, 0 ms] (85) QDP (86) DependencyGraphProof [EQUIVALENT, 0 ms] (87) AND (88) QDP (89) UsableRulesProof [EQUIVALENT, 0 ms] (90) QDP (91) QReductionProof [EQUIVALENT, 0 ms] (92) QDP (93) TransformationProof [EQUIVALENT, 0 ms] (94) QDP (95) TransformationProof [EQUIVALENT, 0 ms] (96) QDP (97) TransformationProof [EQUIVALENT, 0 ms] (98) QDP (99) TransformationProof [EQUIVALENT, 0 ms] (100) QDP (101) TransformationProof [EQUIVALENT, 0 ms] (102) QDP (103) DependencyGraphProof [EQUIVALENT, 0 ms] (104) QDP (105) TransformationProof [EQUIVALENT, 0 ms] (106) QDP (107) DependencyGraphProof [EQUIVALENT, 0 ms] (108) QDP (109) TransformationProof [EQUIVALENT, 0 ms] (110) QDP (111) QDPSizeChangeProof [EQUIVALENT, 2 ms] (112) YES (113) QDP (114) UsableRulesProof [EQUIVALENT, 0 ms] (115) QDP (116) QReductionProof [EQUIVALENT, 0 ms] (117) QDP (118) TransformationProof [EQUIVALENT, 0 ms] (119) QDP (120) TransformationProof [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, 3 ms] (139) QDP (140) DependencyGraphProof [EQUIVALENT, 0 ms] (141) AND (142) QDP (143) TransformationProof [EQUIVALENT, 0 ms] (144) QDP (145) TransformationProof [EQUIVALENT, 0 ms] (146) QDP (147) TransformationProof [EQUIVALENT, 0 ms] (148) QDP (149) QDPOrderProof [EQUIVALENT, 1293 ms] (150) QDP (151) DependencyGraphProof [EQUIVALENT, 0 ms] (152) TRUE (153) QDP (154) QReductionProof [EQUIVALENT, 0 ms] (155) QDP (156) InductionCalculusProof [EQUIVALENT, 0 ms] (157) QDP (158) QDP (159) UsableRulesProof [EQUIVALENT, 0 ms] (160) QDP (161) QReductionProof [EQUIVALENT, 0 ms] (162) QDP (163) TransformationProof [EQUIVALENT, 0 ms] (164) QDP (165) DependencyGraphProof [EQUIVALENT, 0 ms] (166) QDP (167) TransformationProof [EQUIVALENT, 0 ms] (168) QDP (169) DependencyGraphProof [EQUIVALENT, 0 ms] (170) QDP (171) TransformationProof [EQUIVALENT, 0 ms] (172) QDP (173) TransformationProof [EQUIVALENT, 0 ms] (174) QDP (175) DependencyGraphProof [EQUIVALENT, 0 ms] (176) AND (177) QDP (178) UsableRulesProof [EQUIVALENT, 0 ms] (179) QDP (180) QReductionProof [EQUIVALENT, 0 ms] (181) QDP (182) TransformationProof [EQUIVALENT, 0 ms] (183) QDP (184) TransformationProof [EQUIVALENT, 0 ms] (185) QDP (186) TransformationProof [EQUIVALENT, 0 ms] (187) QDP (188) TransformationProof [EQUIVALENT, 0 ms] (189) QDP (190) TransformationProof [EQUIVALENT, 0 ms] (191) QDP (192) DependencyGraphProof [EQUIVALENT, 0 ms] (193) QDP (194) TransformationProof [EQUIVALENT, 0 ms] (195) QDP (196) DependencyGraphProof [EQUIVALENT, 0 ms] (197) QDP (198) TransformationProof [EQUIVALENT, 0 ms] (199) QDP (200) QDPSizeChangeProof [EQUIVALENT, 0 ms] (201) YES (202) QDP (203) UsableRulesProof [EQUIVALENT, 0 ms] (204) QDP (205) QReductionProof [EQUIVALENT, 0 ms] (206) QDP (207) TransformationProof [EQUIVALENT, 0 ms] (208) QDP (209) TransformationProof [EQUIVALENT, 0 ms] (210) QDP (211) TransformationProof [EQUIVALENT, 0 ms] (212) QDP (213) TransformationProof [EQUIVALENT, 0 ms] (214) QDP (215) TransformationProof [EQUIVALENT, 0 ms] (216) QDP (217) TransformationProof [EQUIVALENT, 0 ms] (218) QDP (219) TransformationProof [EQUIVALENT, 0 ms] (220) QDP (221) TransformationProof [EQUIVALENT, 0 ms] (222) QDP (223) TransformationProof [EQUIVALENT, 0 ms] (224) QDP (225) DependencyGraphProof [EQUIVALENT, 0 ms] (226) QDP (227) TransformationProof [EQUIVALENT, 2 ms] (228) QDP (229) DependencyGraphProof [EQUIVALENT, 0 ms] (230) AND (231) QDP (232) TransformationProof [EQUIVALENT, 0 ms] (233) QDP (234) TransformationProof [EQUIVALENT, 0 ms] (235) QDP (236) TransformationProof [EQUIVALENT, 0 ms] (237) QDP (238) QReductionProof [EQUIVALENT, 0 ms] (239) QDP (240) InductionCalculusProof [EQUIVALENT, 0 ms] (241) QDP (242) QDP (243) QReductionProof [EQUIVALENT, 0 ms] (244) QDP (245) InductionCalculusProof [EQUIVALENT, 0 ms] (246) QDP (247) QDP (248) UsableRulesProof [EQUIVALENT, 0 ms] (249) QDP (250) QReductionProof [EQUIVALENT, 0 ms] (251) QDP (252) TransformationProof [EQUIVALENT, 0 ms] (253) QDP (254) DependencyGraphProof [EQUIVALENT, 0 ms] (255) QDP (256) TransformationProof [EQUIVALENT, 0 ms] (257) QDP (258) DependencyGraphProof [EQUIVALENT, 0 ms] (259) QDP (260) TransformationProof [EQUIVALENT, 0 ms] (261) QDP (262) TransformationProof [EQUIVALENT, 0 ms] (263) QDP (264) DependencyGraphProof [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) DependencyGraphProof [EQUIVALENT, 0 ms] (273) QDP (274) TransformationProof [EQUIVALENT, 0 ms] (275) QDP (276) TransformationProof [EQUIVALENT, 0 ms] (277) QDP (278) TransformationProof [EQUIVALENT, 0 ms] (279) QDP (280) TransformationProof [EQUIVALENT, 0 ms] (281) QDP (282) DependencyGraphProof [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) TransformationProof [EQUIVALENT, 0 ms] (297) QDP (298) DependencyGraphProof [EQUIVALENT, 0 ms] (299) QDP (300) TransformationProof [EQUIVALENT, 0 ms] (301) QDP (302) DependencyGraphProof [EQUIVALENT, 0 ms] (303) AND (304) QDP (305) UsableRulesProof [EQUIVALENT, 0 ms] (306) QDP (307) QReductionProof [EQUIVALENT, 0 ms] (308) QDP (309) TransformationProof [EQUIVALENT, 0 ms] (310) QDP (311) TransformationProof [EQUIVALENT, 0 ms] (312) QDP (313) TransformationProof [EQUIVALENT, 0 ms] (314) QDP (315) DependencyGraphProof [EQUIVALENT, 0 ms] (316) QDP (317) TransformationProof [EQUIVALENT, 0 ms] (318) QDP (319) DependencyGraphProof [EQUIVALENT, 0 ms] (320) QDP (321) TransformationProof [EQUIVALENT, 0 ms] (322) QDP (323) QDPSizeChangeProof [EQUIVALENT, 0 ms] (324) YES (325) QDP (326) UsableRulesProof [EQUIVALENT, 0 ms] (327) QDP (328) QReductionProof [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) DependencyGraphProof [EQUIVALENT, 0 ms] (341) QDP (342) TransformationProof [EQUIVALENT, 0 ms] (343) QDP (344) DependencyGraphProof [EQUIVALENT, 0 ms] (345) QDP (346) TransformationProof [EQUIVALENT, 0 ms] (347) QDP (348) QDPSizeChangeProof [EQUIVALENT, 13 ms] (349) YES (350) QDP (351) UsableRulesProof [EQUIVALENT, 0 ms] (352) QDP (353) QReductionProof [EQUIVALENT, 0 ms] (354) QDP (355) TransformationProof [EQUIVALENT, 0 ms] (356) QDP (357) TransformationProof [EQUIVALENT, 0 ms] (358) QDP (359) TransformationProof [EQUIVALENT, 0 ms] (360) QDP (361) TransformationProof [EQUIVALENT, 0 ms] (362) QDP (363) TransformationProof [EQUIVALENT, 0 ms] (364) QDP (365) TransformationProof [EQUIVALENT, 0 ms] (366) QDP (367) TransformationProof [EQUIVALENT, 0 ms] (368) QDP (369) TransformationProof [EQUIVALENT, 0 ms] (370) QDP (371) TransformationProof [EQUIVALENT, 0 ms] (372) QDP (373) DependencyGraphProof [EQUIVALENT, 0 ms] (374) QDP (375) TransformationProof [EQUIVALENT, 0 ms] (376) QDP (377) DependencyGraphProof [EQUIVALENT, 0 ms] (378) QDP (379) TransformationProof [EQUIVALENT, 0 ms] (380) QDP (381) TransformationProof [EQUIVALENT, 0 ms] (382) QDP (383) TransformationProof [EQUIVALENT, 0 ms] (384) QDP (385) TransformationProof [EQUIVALENT, 0 ms] (386) QDP (387) DependencyGraphProof [EQUIVALENT, 0 ms] (388) AND (389) QDP (390) UsableRulesProof [EQUIVALENT, 0 ms] (391) QDP (392) TransformationProof [EQUIVALENT, 0 ms] (393) QDP (394) TransformationProof [EQUIVALENT, 0 ms] (395) QDP (396) TransformationProof [EQUIVALENT, 0 ms] (397) QDP (398) InductionCalculusProof [EQUIVALENT, 0 ms] (399) QDP (400) QDP (401) UsableRulesProof [EQUIVALENT, 0 ms] (402) QDP (403) TransformationProof [EQUIVALENT, 0 ms] (404) QDP (405) UsableRulesProof [EQUIVALENT, 0 ms] (406) QDP (407) InductionCalculusProof [EQUIVALENT, 0 ms] (408) QDP (409) QDP (410) InductionCalculusProof [EQUIVALENT, 0 ms] (411) QDP (412) QDP (413) DependencyGraphProof [EQUIVALENT, 0 ms] (414) AND (415) QDP (416) MRRProof [EQUIVALENT, 0 ms] (417) QDP (418) PisEmptyProof [EQUIVALENT, 0 ms] (419) YES (420) QDP (421) QDPSizeChangeProof [EQUIVALENT, 0 ms] (422) YES (423) QDP (424) QDPSizeChangeProof [EQUIVALENT, 0 ms] (425) YES (426) QDP (427) QDPSizeChangeProof [EQUIVALENT, 0 ms] (428) YES (429) QDP (430) QDPSizeChangeProof [EQUIVALENT, 0 ms] (431) YES (432) QDP (433) TransformationProof [EQUIVALENT, 0 ms] (434) QDP (435) DependencyGraphProof [EQUIVALENT, 0 ms] (436) QDP (437) UsableRulesProof [EQUIVALENT, 0 ms] (438) QDP (439) QReductionProof [EQUIVALENT, 0 ms] (440) QDP (441) TransformationProof [EQUIVALENT, 0 ms] (442) QDP (443) UsableRulesProof [EQUIVALENT, 0 ms] (444) QDP (445) TransformationProof [EQUIVALENT, 0 ms] (446) QDP (447) UsableRulesProof [EQUIVALENT, 0 ms] (448) QDP (449) QReductionProof [EQUIVALENT, 0 ms] (450) QDP (451) MNOCProof [EQUIVALENT, 0 ms] (452) QDP (453) InductionCalculusProof [EQUIVALENT, 0 ms] (454) QDP (455) TransformationProof [EQUIVALENT, 0 ms] (456) QDP (457) DependencyGraphProof [EQUIVALENT, 0 ms] (458) QDP (459) UsableRulesProof [EQUIVALENT, 0 ms] (460) QDP (461) QReductionProof [EQUIVALENT, 0 ms] (462) QDP (463) TransformationProof [EQUIVALENT, 0 ms] (464) QDP (465) DependencyGraphProof [EQUIVALENT, 0 ms] (466) QDP (467) TransformationProof [EQUIVALENT, 0 ms] (468) QDP (469) DependencyGraphProof [EQUIVALENT, 0 ms] (470) QDP (471) TransformationProof [EQUIVALENT, 0 ms] (472) QDP (473) TransformationProof [EQUIVALENT, 0 ms] (474) QDP (475) DependencyGraphProof [EQUIVALENT, 0 ms] (476) QDP (477) TransformationProof [EQUIVALENT, 0 ms] (478) QDP (479) DependencyGraphProof [EQUIVALENT, 0 ms] (480) QDP (481) TransformationProof [EQUIVALENT, 0 ms] (482) QDP (483) TransformationProof [EQUIVALENT, 0 ms] (484) QDP (485) DependencyGraphProof [EQUIVALENT, 0 ms] (486) QDP (487) TransformationProof [EQUIVALENT, 0 ms] (488) QDP (489) DependencyGraphProof [EQUIVALENT, 0 ms] (490) QDP (491) TransformationProof [EQUIVALENT, 0 ms] (492) QDP (493) TransformationProof [EQUIVALENT, 0 ms] (494) QDP (495) DependencyGraphProof [EQUIVALENT, 0 ms] (496) QDP (497) TransformationProof [EQUIVALENT, 0 ms] (498) QDP (499) DependencyGraphProof [EQUIVALENT, 0 ms] (500) QDP (501) TransformationProof [EQUIVALENT, 0 ms] (502) QDP (503) TransformationProof [EQUIVALENT, 0 ms] (504) QDP (505) TransformationProof [EQUIVALENT, 0 ms] (506) QDP (507) TransformationProof [EQUIVALENT, 0 ms] (508) QDP (509) TransformationProof [EQUIVALENT, 0 ms] (510) QDP (511) TransformationProof [EQUIVALENT, 0 ms] (512) QDP (513) TransformationProof [EQUIVALENT, 0 ms] (514) QDP (515) TransformationProof [EQUIVALENT, 0 ms] (516) QDP (517) DependencyGraphProof [EQUIVALENT, 0 ms] (518) QDP (519) TransformationProof [EQUIVALENT, 0 ms] (520) QDP (521) TransformationProof [EQUIVALENT, 0 ms] (522) QDP (523) DependencyGraphProof [EQUIVALENT, 0 ms] (524) QDP (525) TransformationProof [EQUIVALENT, 0 ms] (526) QDP (527) TransformationProof [EQUIVALENT, 0 ms] (528) QDP (529) TransformationProof [EQUIVALENT, 0 ms] (530) QDP (531) TransformationProof [EQUIVALENT, 0 ms] (532) QDP (533) TransformationProof [EQUIVALENT, 0 ms] (534) QDP (535) TransformationProof [EQUIVALENT, 0 ms] (536) QDP (537) TransformationProof [EQUIVALENT, 0 ms] (538) QDP (539) TransformationProof [EQUIVALENT, 0 ms] (540) QDP (541) DependencyGraphProof [EQUIVALENT, 0 ms] (542) QDP (543) TransformationProof [EQUIVALENT, 0 ms] (544) QDP (545) TransformationProof [EQUIVALENT, 0 ms] (546) QDP (547) DependencyGraphProof [EQUIVALENT, 0 ms] (548) QDP (549) TransformationProof [EQUIVALENT, 0 ms] (550) QDP (551) TransformationProof [EQUIVALENT, 0 ms] (552) QDP (553) TransformationProof [EQUIVALENT, 0 ms] (554) QDP (555) TransformationProof [EQUIVALENT, 0 ms] (556) QDP (557) TransformationProof [EQUIVALENT, 0 ms] (558) QDP (559) TransformationProof [EQUIVALENT, 0 ms] (560) QDP (561) TransformationProof [EQUIVALENT, 0 ms] (562) QDP (563) TransformationProof [EQUIVALENT, 0 ms] (564) QDP (565) DependencyGraphProof [EQUIVALENT, 0 ms] (566) QDP (567) TransformationProof [EQUIVALENT, 0 ms] (568) QDP (569) TransformationProof [EQUIVALENT, 0 ms] (570) QDP (571) DependencyGraphProof [EQUIVALENT, 0 ms] (572) QDP (573) TransformationProof [EQUIVALENT, 0 ms] (574) QDP (575) TransformationProof [EQUIVALENT, 0 ms] (576) QDP (577) TransformationProof [EQUIVALENT, 0 ms] (578) QDP (579) TransformationProof [EQUIVALENT, 0 ms] (580) QDP (581) TransformationProof [EQUIVALENT, 0 ms] (582) QDP (583) TransformationProof [EQUIVALENT, 0 ms] (584) QDP (585) TransformationProof [EQUIVALENT, 0 ms] (586) QDP (587) TransformationProof [EQUIVALENT, 0 ms] (588) QDP (589) DependencyGraphProof [EQUIVALENT, 0 ms] (590) QDP (591) TransformationProof [EQUIVALENT, 0 ms] (592) QDP (593) TransformationProof [EQUIVALENT, 0 ms] (594) QDP (595) DependencyGraphProof [EQUIVALENT, 0 ms] (596) QDP (597) TransformationProof [EQUIVALENT, 0 ms] (598) QDP (599) TransformationProof [EQUIVALENT, 0 ms] (600) QDP (601) TransformationProof [EQUIVALENT, 0 ms] (602) QDP (603) TransformationProof [EQUIVALENT, 0 ms] (604) QDP (605) TransformationProof [EQUIVALENT, 0 ms] (606) QDP (607) TransformationProof [EQUIVALENT, 0 ms] (608) QDP (609) TransformationProof [EQUIVALENT, 0 ms] (610) QDP (611) TransformationProof [EQUIVALENT, 0 ms] (612) QDP (613) TransformationProof [EQUIVALENT, 0 ms] (614) QDP (615) TransformationProof [EQUIVALENT, 0 ms] (616) QDP (617) DependencyGraphProof [EQUIVALENT, 0 ms] (618) QDP (619) TransformationProof [EQUIVALENT, 0 ms] (620) QDP (621) TransformationProof [EQUIVALENT, 0 ms] (622) QDP (623) TransformationProof [EQUIVALENT, 0 ms] (624) QDP (625) DependencyGraphProof [EQUIVALENT, 0 ms] (626) QDP (627) TransformationProof [EQUIVALENT, 0 ms] (628) QDP (629) TransformationProof [EQUIVALENT, 0 ms] (630) QDP (631) TransformationProof [EQUIVALENT, 0 ms] (632) QDP (633) TransformationProof [EQUIVALENT, 0 ms] (634) QDP (635) TransformationProof [EQUIVALENT, 0 ms] (636) QDP (637) TransformationProof [EQUIVALENT, 0 ms] (638) QDP (639) TransformationProof [EQUIVALENT, 0 ms] (640) QDP (641) TransformationProof [EQUIVALENT, 0 ms] (642) QDP (643) TransformationProof [EQUIVALENT, 0 ms] (644) QDP (645) TransformationProof [EQUIVALENT, 0 ms] (646) QDP (647) DependencyGraphProof [EQUIVALENT, 0 ms] (648) QDP (649) TransformationProof [EQUIVALENT, 0 ms] (650) QDP (651) TransformationProof [EQUIVALENT, 0 ms] (652) QDP (653) TransformationProof [EQUIVALENT, 0 ms] (654) QDP (655) DependencyGraphProof [EQUIVALENT, 0 ms] (656) QDP (657) TransformationProof [EQUIVALENT, 0 ms] (658) QDP (659) TransformationProof [EQUIVALENT, 0 ms] (660) QDP (661) TransformationProof [EQUIVALENT, 0 ms] (662) QDP (663) TransformationProof [EQUIVALENT, 0 ms] (664) QDP (665) TransformationProof [EQUIVALENT, 0 ms] (666) QDP (667) TransformationProof [EQUIVALENT, 0 ms] (668) QDP (669) TransformationProof [EQUIVALENT, 0 ms] (670) QDP (671) TransformationProof [EQUIVALENT, 0 ms] (672) QDP (673) TransformationProof [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) TransformationProof [EQUIVALENT, 0 ms] (682) QDP (683) TransformationProof [EQUIVALENT, 0 ms] (684) QDP (685) DependencyGraphProof [EQUIVALENT, 0 ms] (686) QDP (687) TransformationProof [EQUIVALENT, 0 ms] (688) QDP (689) TransformationProof [EQUIVALENT, 0 ms] (690) QDP (691) TransformationProof [EQUIVALENT, 0 ms] (692) QDP (693) TransformationProof [EQUIVALENT, 0 ms] (694) QDP (695) TransformationProof [EQUIVALENT, 0 ms] (696) QDP (697) TransformationProof [EQUIVALENT, 0 ms] (698) QDP (699) TransformationProof [EQUIVALENT, 0 ms] (700) QDP (701) TransformationProof [EQUIVALENT, 0 ms] (702) QDP (703) TransformationProof [EQUIVALENT, 0 ms] (704) QDP (705) TransformationProof [EQUIVALENT, 0 ms] (706) QDP (707) DependencyGraphProof [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) DependencyGraphProof [EQUIVALENT, 0 ms] (716) QDP (717) TransformationProof [EQUIVALENT, 0 ms] (718) QDP (719) QDPOrderProof [EQUIVALENT, 0 ms] (720) QDP (721) QDPOrderProof [EQUIVALENT, 0 ms] (722) QDP (723) MNOCProof [EQUIVALENT, 0 ms] (724) QDP (725) QDPOrderProof [EQUIVALENT, 795 ms] (726) QDP (727) MNOCProof [EQUIVALENT, 0 ms] (728) QDP (729) InductionCalculusProof [EQUIVALENT, 0 ms] (730) QDP (731) Narrow [COMPLETE, 0 ms] (732) QDP (733) PisEmptyProof [EQUIVALENT, 0 ms] (734) YES ---------------------------------------- (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'0 x y = gcd0Gcd' y (x `rem` y); " "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; " 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; " "reduce2Reduce0 vux vuy x y True = x `quot` reduce2D vux vuy :% (y `quot` reduce2D vux vuy); " "reduce2Reduce1 vux vuy x y True = error []; reduce2Reduce1 vux vuy x y False = reduce2Reduce0 vux vuy x y otherwise; " ---------------------------------------- (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="(*)",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="(*) vuz3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 4[label="(*) vuz3 vuz4",fontsize=16,color="blue",shape="box"];1023[label="* :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];4 -> 1023[label="",style="solid", color="blue", weight=9]; 1023 -> 5[label="",style="solid", color="blue", weight=3]; 1024[label="* :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];4 -> 1024[label="",style="solid", color="blue", weight=9]; 1024 -> 6[label="",style="solid", color="blue", weight=3]; 1025[label="* :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];4 -> 1025[label="",style="solid", color="blue", weight=9]; 1025 -> 7[label="",style="solid", color="blue", weight=3]; 1026[label="* :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];4 -> 1026[label="",style="solid", color="blue", weight=9]; 1026 -> 8[label="",style="solid", color="blue", weight=3]; 1027[label="* :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];4 -> 1027[label="",style="solid", color="blue", weight=9]; 1027 -> 9[label="",style="solid", color="blue", weight=3]; 5[label="(*) vuz3 vuz4",fontsize=16,color="burlywood",shape="box"];1028[label="vuz3/vuz30 :% vuz31",fontsize=10,color="white",style="solid",shape="box"];5 -> 1028[label="",style="solid", color="burlywood", weight=9]; 1028 -> 10[label="",style="solid", color="burlywood", weight=3]; 6[label="(*) vuz3 vuz4",fontsize=16,color="black",shape="box"];6 -> 11[label="",style="solid", color="black", weight=3]; 7[label="(*) vuz3 vuz4",fontsize=16,color="black",shape="triangle"];7 -> 12[label="",style="solid", color="black", weight=3]; 8[label="(*) vuz3 vuz4",fontsize=16,color="burlywood",shape="triangle"];1029[label="vuz3/Integer vuz30",fontsize=10,color="white",style="solid",shape="box"];8 -> 1029[label="",style="solid", color="burlywood", weight=9]; 1029 -> 13[label="",style="solid", color="burlywood", weight=3]; 9[label="(*) vuz3 vuz4",fontsize=16,color="black",shape="box"];9 -> 14[label="",style="solid", color="black", weight=3]; 10[label="(*) (vuz30 :% vuz31) vuz4",fontsize=16,color="burlywood",shape="box"];1030[label="vuz4/vuz40 :% vuz41",fontsize=10,color="white",style="solid",shape="box"];10 -> 1030[label="",style="solid", color="burlywood", weight=9]; 1030 -> 15[label="",style="solid", color="burlywood", weight=3]; 11[label="primMulDouble vuz3 vuz4",fontsize=16,color="burlywood",shape="box"];1031[label="vuz3/Double vuz30 vuz31",fontsize=10,color="white",style="solid",shape="box"];11 -> 1031[label="",style="solid", color="burlywood", weight=9]; 1031 -> 16[label="",style="solid", color="burlywood", weight=3]; 12[label="primMulInt vuz3 vuz4",fontsize=16,color="burlywood",shape="triangle"];1032[label="vuz3/Pos vuz30",fontsize=10,color="white",style="solid",shape="box"];12 -> 1032[label="",style="solid", color="burlywood", weight=9]; 1032 -> 17[label="",style="solid", color="burlywood", weight=3]; 1033[label="vuz3/Neg vuz30",fontsize=10,color="white",style="solid",shape="box"];12 -> 1033[label="",style="solid", color="burlywood", weight=9]; 1033 -> 18[label="",style="solid", color="burlywood", weight=3]; 13[label="(*) Integer vuz30 vuz4",fontsize=16,color="burlywood",shape="box"];1034[label="vuz4/Integer vuz40",fontsize=10,color="white",style="solid",shape="box"];13 -> 1034[label="",style="solid", color="burlywood", weight=9]; 1034 -> 19[label="",style="solid", color="burlywood", weight=3]; 14[label="primMulFloat vuz3 vuz4",fontsize=16,color="burlywood",shape="box"];1035[label="vuz3/Float vuz30 vuz31",fontsize=10,color="white",style="solid",shape="box"];14 -> 1035[label="",style="solid", color="burlywood", weight=9]; 1035 -> 20[label="",style="solid", color="burlywood", weight=3]; 15[label="(*) (vuz30 :% vuz31) (vuz40 :% vuz41)",fontsize=16,color="black",shape="box"];15 -> 21[label="",style="solid", color="black", weight=3]; 16[label="primMulDouble (Double vuz30 vuz31) vuz4",fontsize=16,color="burlywood",shape="box"];1036[label="vuz4/Double vuz40 vuz41",fontsize=10,color="white",style="solid",shape="box"];16 -> 1036[label="",style="solid", color="burlywood", weight=9]; 1036 -> 22[label="",style="solid", color="burlywood", weight=3]; 17[label="primMulInt (Pos vuz30) vuz4",fontsize=16,color="burlywood",shape="box"];1037[label="vuz4/Pos vuz40",fontsize=10,color="white",style="solid",shape="box"];17 -> 1037[label="",style="solid", color="burlywood", weight=9]; 1037 -> 23[label="",style="solid", color="burlywood", weight=3]; 1038[label="vuz4/Neg vuz40",fontsize=10,color="white",style="solid",shape="box"];17 -> 1038[label="",style="solid", color="burlywood", weight=9]; 1038 -> 24[label="",style="solid", color="burlywood", weight=3]; 18[label="primMulInt (Neg vuz30) vuz4",fontsize=16,color="burlywood",shape="box"];1039[label="vuz4/Pos vuz40",fontsize=10,color="white",style="solid",shape="box"];18 -> 1039[label="",style="solid", color="burlywood", weight=9]; 1039 -> 25[label="",style="solid", color="burlywood", weight=3]; 1040[label="vuz4/Neg vuz40",fontsize=10,color="white",style="solid",shape="box"];18 -> 1040[label="",style="solid", color="burlywood", weight=9]; 1040 -> 26[label="",style="solid", color="burlywood", weight=3]; 19[label="(*) Integer vuz30 Integer vuz40",fontsize=16,color="black",shape="box"];19 -> 27[label="",style="solid", color="black", weight=3]; 20[label="primMulFloat (Float vuz30 vuz31) vuz4",fontsize=16,color="burlywood",shape="box"];1041[label="vuz4/Float vuz40 vuz41",fontsize=10,color="white",style="solid",shape="box"];20 -> 1041[label="",style="solid", color="burlywood", weight=9]; 1041 -> 28[label="",style="solid", color="burlywood", weight=3]; 21[label="reduce (vuz30 * vuz40) (vuz31 * vuz41)",fontsize=16,color="black",shape="box"];21 -> 29[label="",style="solid", color="black", weight=3]; 22[label="primMulDouble (Double vuz30 vuz31) (Double vuz40 vuz41)",fontsize=16,color="black",shape="box"];22 -> 30[label="",style="solid", color="black", weight=3]; 23[label="primMulInt (Pos vuz30) (Pos vuz40)",fontsize=16,color="black",shape="box"];23 -> 31[label="",style="solid", color="black", weight=3]; 24[label="primMulInt (Pos vuz30) (Neg vuz40)",fontsize=16,color="black",shape="box"];24 -> 32[label="",style="solid", color="black", weight=3]; 25[label="primMulInt (Neg vuz30) (Pos vuz40)",fontsize=16,color="black",shape="box"];25 -> 33[label="",style="solid", color="black", weight=3]; 26[label="primMulInt (Neg vuz30) (Neg vuz40)",fontsize=16,color="black",shape="box"];26 -> 34[label="",style="solid", color="black", weight=3]; 27[label="Integer (primMulInt vuz30 vuz40)",fontsize=16,color="green",shape="box"];27 -> 35[label="",style="dashed", color="green", weight=3]; 28[label="primMulFloat (Float vuz30 vuz31) (Float vuz40 vuz41)",fontsize=16,color="black",shape="box"];28 -> 36[label="",style="solid", color="black", weight=3]; 29[label="reduce2 (vuz30 * vuz40) (vuz31 * vuz41)",fontsize=16,color="black",shape="box"];29 -> 37[label="",style="solid", color="black", weight=3]; 30[label="Double (vuz30 * vuz40) (vuz31 * vuz41)",fontsize=16,color="green",shape="box"];30 -> 38[label="",style="dashed", color="green", weight=3]; 30 -> 39[label="",style="dashed", color="green", weight=3]; 31[label="Pos (primMulNat vuz30 vuz40)",fontsize=16,color="green",shape="box"];31 -> 40[label="",style="dashed", color="green", weight=3]; 32[label="Neg (primMulNat vuz30 vuz40)",fontsize=16,color="green",shape="box"];32 -> 41[label="",style="dashed", color="green", weight=3]; 33[label="Neg (primMulNat vuz30 vuz40)",fontsize=16,color="green",shape="box"];33 -> 42[label="",style="dashed", color="green", weight=3]; 34[label="Pos (primMulNat vuz30 vuz40)",fontsize=16,color="green",shape="box"];34 -> 43[label="",style="dashed", color="green", weight=3]; 35 -> 12[label="",style="dashed", color="red", weight=0]; 35[label="primMulInt vuz30 vuz40",fontsize=16,color="magenta"];35 -> 44[label="",style="dashed", color="magenta", weight=3]; 35 -> 45[label="",style="dashed", color="magenta", weight=3]; 36[label="Float (vuz30 * vuz40) (vuz31 * vuz41)",fontsize=16,color="green",shape="box"];36 -> 46[label="",style="dashed", color="green", weight=3]; 36 -> 47[label="",style="dashed", color="green", weight=3]; 37 -> 48[label="",style="dashed", color="red", weight=0]; 37[label="reduce2Reduce1 (vuz30 * vuz40) (vuz31 * vuz41) (vuz30 * vuz40) (vuz31 * vuz41) (vuz31 * vuz41 == fromInt (Pos Zero))",fontsize=16,color="magenta"];37 -> 49[label="",style="dashed", color="magenta", weight=3]; 37 -> 50[label="",style="dashed", color="magenta", weight=3]; 37 -> 51[label="",style="dashed", color="magenta", weight=3]; 37 -> 52[label="",style="dashed", color="magenta", weight=3]; 37 -> 53[label="",style="dashed", color="magenta", weight=3]; 38 -> 7[label="",style="dashed", color="red", weight=0]; 38[label="vuz30 * vuz40",fontsize=16,color="magenta"];38 -> 54[label="",style="dashed", color="magenta", weight=3]; 38 -> 55[label="",style="dashed", color="magenta", weight=3]; 39 -> 7[label="",style="dashed", color="red", weight=0]; 39[label="vuz31 * vuz41",fontsize=16,color="magenta"];39 -> 56[label="",style="dashed", color="magenta", weight=3]; 39 -> 57[label="",style="dashed", color="magenta", weight=3]; 40[label="primMulNat vuz30 vuz40",fontsize=16,color="burlywood",shape="triangle"];1042[label="vuz30/Succ vuz300",fontsize=10,color="white",style="solid",shape="box"];40 -> 1042[label="",style="solid", color="burlywood", weight=9]; 1042 -> 58[label="",style="solid", color="burlywood", weight=3]; 1043[label="vuz30/Zero",fontsize=10,color="white",style="solid",shape="box"];40 -> 1043[label="",style="solid", color="burlywood", weight=9]; 1043 -> 59[label="",style="solid", color="burlywood", weight=3]; 41 -> 40[label="",style="dashed", color="red", weight=0]; 41[label="primMulNat vuz30 vuz40",fontsize=16,color="magenta"];41 -> 60[label="",style="dashed", color="magenta", weight=3]; 42 -> 40[label="",style="dashed", color="red", weight=0]; 42[label="primMulNat vuz30 vuz40",fontsize=16,color="magenta"];42 -> 61[label="",style="dashed", color="magenta", weight=3]; 43 -> 40[label="",style="dashed", color="red", weight=0]; 43[label="primMulNat vuz30 vuz40",fontsize=16,color="magenta"];43 -> 62[label="",style="dashed", color="magenta", weight=3]; 43 -> 63[label="",style="dashed", color="magenta", weight=3]; 44[label="vuz40",fontsize=16,color="green",shape="box"];45[label="vuz30",fontsize=16,color="green",shape="box"];46 -> 7[label="",style="dashed", color="red", weight=0]; 46[label="vuz30 * vuz40",fontsize=16,color="magenta"];46 -> 64[label="",style="dashed", color="magenta", weight=3]; 46 -> 65[label="",style="dashed", color="magenta", weight=3]; 47 -> 7[label="",style="dashed", color="red", weight=0]; 47[label="vuz31 * vuz41",fontsize=16,color="magenta"];47 -> 66[label="",style="dashed", color="magenta", weight=3]; 47 -> 67[label="",style="dashed", color="magenta", weight=3]; 49[label="vuz41",fontsize=16,color="green",shape="box"];50[label="vuz31 * vuz41 == fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];1044[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];50 -> 1044[label="",style="solid", color="blue", weight=9]; 1044 -> 68[label="",style="solid", color="blue", weight=3]; 1045[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];50 -> 1045[label="",style="solid", color="blue", weight=9]; 1045 -> 69[label="",style="solid", color="blue", weight=3]; 51[label="vuz40",fontsize=16,color="green",shape="box"];52[label="vuz30",fontsize=16,color="green",shape="box"];53[label="vuz31",fontsize=16,color="green",shape="box"];48[label="reduce2Reduce1 (vuz11 * vuz12) (vuz13 * vuz14) (vuz11 * vuz12) (vuz13 * vuz14) vuz15",fontsize=16,color="burlywood",shape="triangle"];1046[label="vuz15/False",fontsize=10,color="white",style="solid",shape="box"];48 -> 1046[label="",style="solid", color="burlywood", weight=9]; 1046 -> 70[label="",style="solid", color="burlywood", weight=3]; 1047[label="vuz15/True",fontsize=10,color="white",style="solid",shape="box"];48 -> 1047[label="",style="solid", color="burlywood", weight=9]; 1047 -> 71[label="",style="solid", color="burlywood", weight=3]; 54[label="vuz40",fontsize=16,color="green",shape="box"];55[label="vuz30",fontsize=16,color="green",shape="box"];56[label="vuz41",fontsize=16,color="green",shape="box"];57[label="vuz31",fontsize=16,color="green",shape="box"];58[label="primMulNat (Succ vuz300) vuz40",fontsize=16,color="burlywood",shape="box"];1048[label="vuz40/Succ vuz400",fontsize=10,color="white",style="solid",shape="box"];58 -> 1048[label="",style="solid", color="burlywood", weight=9]; 1048 -> 72[label="",style="solid", color="burlywood", weight=3]; 1049[label="vuz40/Zero",fontsize=10,color="white",style="solid",shape="box"];58 -> 1049[label="",style="solid", color="burlywood", weight=9]; 1049 -> 73[label="",style="solid", color="burlywood", weight=3]; 59[label="primMulNat Zero vuz40",fontsize=16,color="burlywood",shape="box"];1050[label="vuz40/Succ vuz400",fontsize=10,color="white",style="solid",shape="box"];59 -> 1050[label="",style="solid", color="burlywood", weight=9]; 1050 -> 74[label="",style="solid", color="burlywood", weight=3]; 1051[label="vuz40/Zero",fontsize=10,color="white",style="solid",shape="box"];59 -> 1051[label="",style="solid", color="burlywood", weight=9]; 1051 -> 75[label="",style="solid", color="burlywood", weight=3]; 60[label="vuz40",fontsize=16,color="green",shape="box"];61[label="vuz30",fontsize=16,color="green",shape="box"];62[label="vuz30",fontsize=16,color="green",shape="box"];63[label="vuz40",fontsize=16,color="green",shape="box"];64[label="vuz40",fontsize=16,color="green",shape="box"];65[label="vuz30",fontsize=16,color="green",shape="box"];66[label="vuz41",fontsize=16,color="green",shape="box"];67[label="vuz31",fontsize=16,color="green",shape="box"];68 -> 76[label="",style="dashed", color="red", weight=0]; 68[label="vuz31 * vuz41 == fromInt (Pos Zero)",fontsize=16,color="magenta"];68 -> 77[label="",style="dashed", color="magenta", weight=3]; 69 -> 78[label="",style="dashed", color="red", weight=0]; 69[label="vuz31 * vuz41 == fromInt (Pos Zero)",fontsize=16,color="magenta"];69 -> 79[label="",style="dashed", color="magenta", weight=3]; 70[label="reduce2Reduce1 (vuz11 * vuz12) (vuz13 * vuz14) (vuz11 * vuz12) (vuz13 * vuz14) False",fontsize=16,color="black",shape="box"];70 -> 80[label="",style="solid", color="black", weight=3]; 71[label="reduce2Reduce1 (vuz11 * vuz12) (vuz13 * vuz14) (vuz11 * vuz12) (vuz13 * vuz14) True",fontsize=16,color="black",shape="box"];71 -> 81[label="",style="solid", color="black", weight=3]; 72[label="primMulNat (Succ vuz300) (Succ vuz400)",fontsize=16,color="black",shape="box"];72 -> 82[label="",style="solid", color="black", weight=3]; 73[label="primMulNat (Succ vuz300) Zero",fontsize=16,color="black",shape="box"];73 -> 83[label="",style="solid", color="black", weight=3]; 74[label="primMulNat Zero (Succ vuz400)",fontsize=16,color="black",shape="box"];74 -> 84[label="",style="solid", color="black", weight=3]; 75[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];75 -> 85[label="",style="solid", color="black", weight=3]; 77 -> 8[label="",style="dashed", color="red", weight=0]; 77[label="vuz31 * vuz41",fontsize=16,color="magenta"];77 -> 86[label="",style="dashed", color="magenta", weight=3]; 77 -> 87[label="",style="dashed", color="magenta", weight=3]; 76[label="vuz16 == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="triangle"];1052[label="vuz16/Integer vuz160",fontsize=10,color="white",style="solid",shape="box"];76 -> 1052[label="",style="solid", color="burlywood", weight=9]; 1052 -> 88[label="",style="solid", color="burlywood", weight=3]; 79 -> 7[label="",style="dashed", color="red", weight=0]; 79[label="vuz31 * vuz41",fontsize=16,color="magenta"];79 -> 89[label="",style="dashed", color="magenta", weight=3]; 79 -> 90[label="",style="dashed", color="magenta", weight=3]; 78[label="vuz17 == fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];78 -> 91[label="",style="solid", color="black", weight=3]; 80[label="reduce2Reduce0 (vuz11 * vuz12) (vuz13 * vuz14) (vuz11 * vuz12) (vuz13 * vuz14) otherwise",fontsize=16,color="black",shape="box"];80 -> 92[label="",style="solid", color="black", weight=3]; 81[label="error []",fontsize=16,color="black",shape="box"];81 -> 93[label="",style="solid", color="black", weight=3]; 82 -> 94[label="",style="dashed", color="red", weight=0]; 82[label="primPlusNat (primMulNat vuz300 (Succ vuz400)) (Succ vuz400)",fontsize=16,color="magenta"];82 -> 95[label="",style="dashed", color="magenta", weight=3]; 83[label="Zero",fontsize=16,color="green",shape="box"];84[label="Zero",fontsize=16,color="green",shape="box"];85[label="Zero",fontsize=16,color="green",shape="box"];86[label="vuz41",fontsize=16,color="green",shape="box"];87[label="vuz31",fontsize=16,color="green",shape="box"];88[label="Integer vuz160 == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];88 -> 96[label="",style="solid", color="black", weight=3]; 89[label="vuz41",fontsize=16,color="green",shape="box"];90[label="vuz31",fontsize=16,color="green",shape="box"];91[label="primEqInt vuz17 (fromInt (Pos Zero))",fontsize=16,color="burlywood",shape="box"];1053[label="vuz17/Pos vuz170",fontsize=10,color="white",style="solid",shape="box"];91 -> 1053[label="",style="solid", color="burlywood", weight=9]; 1053 -> 97[label="",style="solid", color="burlywood", weight=3]; 1054[label="vuz17/Neg vuz170",fontsize=10,color="white",style="solid",shape="box"];91 -> 1054[label="",style="solid", color="burlywood", weight=9]; 1054 -> 98[label="",style="solid", color="burlywood", weight=3]; 92[label="reduce2Reduce0 (vuz11 * vuz12) (vuz13 * vuz14) (vuz11 * vuz12) (vuz13 * vuz14) True",fontsize=16,color="black",shape="box"];92 -> 99[label="",style="solid", color="black", weight=3]; 93[label="error []",fontsize=16,color="red",shape="box"];95 -> 40[label="",style="dashed", color="red", weight=0]; 95[label="primMulNat vuz300 (Succ vuz400)",fontsize=16,color="magenta"];95 -> 100[label="",style="dashed", color="magenta", weight=3]; 95 -> 101[label="",style="dashed", color="magenta", weight=3]; 94[label="primPlusNat vuz18 (Succ vuz400)",fontsize=16,color="burlywood",shape="triangle"];1055[label="vuz18/Succ vuz180",fontsize=10,color="white",style="solid",shape="box"];94 -> 1055[label="",style="solid", color="burlywood", weight=9]; 1055 -> 102[label="",style="solid", color="burlywood", weight=3]; 1056[label="vuz18/Zero",fontsize=10,color="white",style="solid",shape="box"];94 -> 1056[label="",style="solid", color="burlywood", weight=9]; 1056 -> 103[label="",style="solid", color="burlywood", weight=3]; 96[label="Integer vuz160 == Integer (Pos Zero)",fontsize=16,color="black",shape="box"];96 -> 104[label="",style="solid", color="black", weight=3]; 97[label="primEqInt (Pos vuz170) (fromInt (Pos Zero))",fontsize=16,color="burlywood",shape="box"];1057[label="vuz170/Succ vuz1700",fontsize=10,color="white",style="solid",shape="box"];97 -> 1057[label="",style="solid", color="burlywood", weight=9]; 1057 -> 105[label="",style="solid", color="burlywood", weight=3]; 1058[label="vuz170/Zero",fontsize=10,color="white",style="solid",shape="box"];97 -> 1058[label="",style="solid", color="burlywood", weight=9]; 1058 -> 106[label="",style="solid", color="burlywood", weight=3]; 98[label="primEqInt (Neg vuz170) (fromInt (Pos Zero))",fontsize=16,color="burlywood",shape="box"];1059[label="vuz170/Succ vuz1700",fontsize=10,color="white",style="solid",shape="box"];98 -> 1059[label="",style="solid", color="burlywood", weight=9]; 1059 -> 107[label="",style="solid", color="burlywood", weight=3]; 1060[label="vuz170/Zero",fontsize=10,color="white",style="solid",shape="box"];98 -> 1060[label="",style="solid", color="burlywood", weight=9]; 1060 -> 108[label="",style="solid", color="burlywood", weight=3]; 99[label="vuz11 * vuz12 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14) :% (vuz13 * vuz14 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14))",fontsize=16,color="green",shape="box"];99 -> 109[label="",style="dashed", color="green", weight=3]; 99 -> 110[label="",style="dashed", color="green", weight=3]; 100[label="vuz300",fontsize=16,color="green",shape="box"];101[label="Succ vuz400",fontsize=16,color="green",shape="box"];102[label="primPlusNat (Succ vuz180) (Succ vuz400)",fontsize=16,color="black",shape="box"];102 -> 111[label="",style="solid", color="black", weight=3]; 103[label="primPlusNat Zero (Succ vuz400)",fontsize=16,color="black",shape="box"];103 -> 112[label="",style="solid", color="black", weight=3]; 104[label="primEqInt vuz160 (Pos Zero)",fontsize=16,color="burlywood",shape="triangle"];1061[label="vuz160/Pos vuz1600",fontsize=10,color="white",style="solid",shape="box"];104 -> 1061[label="",style="solid", color="burlywood", weight=9]; 1061 -> 113[label="",style="solid", color="burlywood", weight=3]; 1062[label="vuz160/Neg vuz1600",fontsize=10,color="white",style="solid",shape="box"];104 -> 1062[label="",style="solid", color="burlywood", weight=9]; 1062 -> 114[label="",style="solid", color="burlywood", weight=3]; 105[label="primEqInt (Pos (Succ vuz1700)) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];105 -> 115[label="",style="solid", color="black", weight=3]; 106[label="primEqInt (Pos Zero) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];106 -> 116[label="",style="solid", color="black", weight=3]; 107[label="primEqInt (Neg (Succ vuz1700)) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];107 -> 117[label="",style="solid", color="black", weight=3]; 108[label="primEqInt (Neg Zero) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];108 -> 118[label="",style="solid", color="black", weight=3]; 109[label="vuz11 * vuz12 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14)",fontsize=16,color="blue",shape="box"];1063[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];109 -> 1063[label="",style="solid", color="blue", weight=9]; 1063 -> 119[label="",style="solid", color="blue", weight=3]; 1064[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];109 -> 1064[label="",style="solid", color="blue", weight=9]; 1064 -> 120[label="",style="solid", color="blue", weight=3]; 110[label="vuz13 * vuz14 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14)",fontsize=16,color="blue",shape="box"];1065[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];110 -> 1065[label="",style="solid", color="blue", weight=9]; 1065 -> 121[label="",style="solid", color="blue", weight=3]; 1066[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];110 -> 1066[label="",style="solid", color="blue", weight=9]; 1066 -> 122[label="",style="solid", color="blue", weight=3]; 111[label="Succ (Succ (primPlusNat vuz180 vuz400))",fontsize=16,color="green",shape="box"];111 -> 123[label="",style="dashed", color="green", weight=3]; 112[label="Succ vuz400",fontsize=16,color="green",shape="box"];113[label="primEqInt (Pos vuz1600) (Pos Zero)",fontsize=16,color="burlywood",shape="box"];1067[label="vuz1600/Succ vuz16000",fontsize=10,color="white",style="solid",shape="box"];113 -> 1067[label="",style="solid", color="burlywood", weight=9]; 1067 -> 124[label="",style="solid", color="burlywood", weight=3]; 1068[label="vuz1600/Zero",fontsize=10,color="white",style="solid",shape="box"];113 -> 1068[label="",style="solid", color="burlywood", weight=9]; 1068 -> 125[label="",style="solid", color="burlywood", weight=3]; 114[label="primEqInt (Neg vuz1600) (Pos Zero)",fontsize=16,color="burlywood",shape="box"];1069[label="vuz1600/Succ vuz16000",fontsize=10,color="white",style="solid",shape="box"];114 -> 1069[label="",style="solid", color="burlywood", weight=9]; 1069 -> 126[label="",style="solid", color="burlywood", weight=3]; 1070[label="vuz1600/Zero",fontsize=10,color="white",style="solid",shape="box"];114 -> 1070[label="",style="solid", color="burlywood", weight=9]; 1070 -> 127[label="",style="solid", color="burlywood", weight=3]; 115 -> 104[label="",style="dashed", color="red", weight=0]; 115[label="primEqInt (Pos (Succ vuz1700)) (Pos Zero)",fontsize=16,color="magenta"];115 -> 128[label="",style="dashed", color="magenta", weight=3]; 116 -> 104[label="",style="dashed", color="red", weight=0]; 116[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="magenta"];116 -> 129[label="",style="dashed", color="magenta", weight=3]; 117 -> 104[label="",style="dashed", color="red", weight=0]; 117[label="primEqInt (Neg (Succ vuz1700)) (Pos Zero)",fontsize=16,color="magenta"];117 -> 130[label="",style="dashed", color="magenta", weight=3]; 118 -> 104[label="",style="dashed", color="red", weight=0]; 118[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="magenta"];118 -> 131[label="",style="dashed", color="magenta", weight=3]; 119 -> 132[label="",style="dashed", color="red", weight=0]; 119[label="vuz11 * vuz12 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14)",fontsize=16,color="magenta"];119 -> 133[label="",style="dashed", color="magenta", weight=3]; 119 -> 134[label="",style="dashed", color="magenta", weight=3]; 119 -> 135[label="",style="dashed", color="magenta", weight=3]; 120 -> 139[label="",style="dashed", color="red", weight=0]; 120[label="vuz11 * vuz12 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14)",fontsize=16,color="magenta"];120 -> 140[label="",style="dashed", color="magenta", weight=3]; 120 -> 141[label="",style="dashed", color="magenta", weight=3]; 120 -> 142[label="",style="dashed", color="magenta", weight=3]; 121 -> 132[label="",style="dashed", color="red", weight=0]; 121[label="vuz13 * vuz14 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14)",fontsize=16,color="magenta"];121 -> 136[label="",style="dashed", color="magenta", weight=3]; 121 -> 137[label="",style="dashed", color="magenta", weight=3]; 121 -> 138[label="",style="dashed", color="magenta", weight=3]; 122 -> 139[label="",style="dashed", color="red", weight=0]; 122[label="vuz13 * vuz14 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14)",fontsize=16,color="magenta"];122 -> 143[label="",style="dashed", color="magenta", weight=3]; 122 -> 144[label="",style="dashed", color="magenta", weight=3]; 122 -> 145[label="",style="dashed", color="magenta", weight=3]; 123[label="primPlusNat vuz180 vuz400",fontsize=16,color="burlywood",shape="triangle"];1071[label="vuz180/Succ vuz1800",fontsize=10,color="white",style="solid",shape="box"];123 -> 1071[label="",style="solid", color="burlywood", weight=9]; 1071 -> 146[label="",style="solid", color="burlywood", weight=3]; 1072[label="vuz180/Zero",fontsize=10,color="white",style="solid",shape="box"];123 -> 1072[label="",style="solid", color="burlywood", weight=9]; 1072 -> 147[label="",style="solid", color="burlywood", weight=3]; 124[label="primEqInt (Pos (Succ vuz16000)) (Pos Zero)",fontsize=16,color="black",shape="box"];124 -> 148[label="",style="solid", color="black", weight=3]; 125[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];125 -> 149[label="",style="solid", color="black", weight=3]; 126[label="primEqInt (Neg (Succ vuz16000)) (Pos Zero)",fontsize=16,color="black",shape="box"];126 -> 150[label="",style="solid", color="black", weight=3]; 127[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];127 -> 151[label="",style="solid", color="black", weight=3]; 128[label="Pos (Succ vuz1700)",fontsize=16,color="green",shape="box"];129[label="Pos Zero",fontsize=16,color="green",shape="box"];130[label="Neg (Succ vuz1700)",fontsize=16,color="green",shape="box"];131[label="Neg Zero",fontsize=16,color="green",shape="box"];133 -> 8[label="",style="dashed", color="red", weight=0]; 133[label="vuz11 * vuz12",fontsize=16,color="magenta"];133 -> 152[label="",style="dashed", color="magenta", weight=3]; 133 -> 153[label="",style="dashed", color="magenta", weight=3]; 134 -> 8[label="",style="dashed", color="red", weight=0]; 134[label="vuz11 * vuz12",fontsize=16,color="magenta"];134 -> 154[label="",style="dashed", color="magenta", weight=3]; 134 -> 155[label="",style="dashed", color="magenta", weight=3]; 135 -> 8[label="",style="dashed", color="red", weight=0]; 135[label="vuz13 * vuz14",fontsize=16,color="magenta"];135 -> 156[label="",style="dashed", color="magenta", weight=3]; 135 -> 157[label="",style="dashed", color="magenta", weight=3]; 132[label="vuz19 `quot` reduce2D vuz21 vuz20",fontsize=16,color="burlywood",shape="triangle"];1073[label="vuz19/Integer vuz190",fontsize=10,color="white",style="solid",shape="box"];132 -> 1073[label="",style="solid", color="burlywood", weight=9]; 1073 -> 158[label="",style="solid", color="burlywood", weight=3]; 140 -> 7[label="",style="dashed", color="red", weight=0]; 140[label="vuz11 * vuz12",fontsize=16,color="magenta"];140 -> 159[label="",style="dashed", color="magenta", weight=3]; 140 -> 160[label="",style="dashed", color="magenta", weight=3]; 141 -> 7[label="",style="dashed", color="red", weight=0]; 141[label="vuz11 * vuz12",fontsize=16,color="magenta"];141 -> 161[label="",style="dashed", color="magenta", weight=3]; 141 -> 162[label="",style="dashed", color="magenta", weight=3]; 142 -> 7[label="",style="dashed", color="red", weight=0]; 142[label="vuz13 * vuz14",fontsize=16,color="magenta"];142 -> 163[label="",style="dashed", color="magenta", weight=3]; 142 -> 164[label="",style="dashed", color="magenta", weight=3]; 139[label="vuz22 `quot` reduce2D vuz24 vuz23",fontsize=16,color="black",shape="triangle"];139 -> 165[label="",style="solid", color="black", weight=3]; 136 -> 8[label="",style="dashed", color="red", weight=0]; 136[label="vuz13 * vuz14",fontsize=16,color="magenta"];136 -> 166[label="",style="dashed", color="magenta", weight=3]; 136 -> 167[label="",style="dashed", color="magenta", weight=3]; 137 -> 8[label="",style="dashed", color="red", weight=0]; 137[label="vuz11 * vuz12",fontsize=16,color="magenta"];137 -> 168[label="",style="dashed", color="magenta", weight=3]; 137 -> 169[label="",style="dashed", color="magenta", weight=3]; 138 -> 8[label="",style="dashed", color="red", weight=0]; 138[label="vuz13 * vuz14",fontsize=16,color="magenta"];138 -> 170[label="",style="dashed", color="magenta", weight=3]; 138 -> 171[label="",style="dashed", color="magenta", weight=3]; 143 -> 7[label="",style="dashed", color="red", weight=0]; 143[label="vuz13 * vuz14",fontsize=16,color="magenta"];143 -> 172[label="",style="dashed", color="magenta", weight=3]; 143 -> 173[label="",style="dashed", color="magenta", weight=3]; 144 -> 7[label="",style="dashed", color="red", weight=0]; 144[label="vuz11 * vuz12",fontsize=16,color="magenta"];144 -> 174[label="",style="dashed", color="magenta", weight=3]; 144 -> 175[label="",style="dashed", color="magenta", weight=3]; 145 -> 7[label="",style="dashed", color="red", weight=0]; 145[label="vuz13 * vuz14",fontsize=16,color="magenta"];145 -> 176[label="",style="dashed", color="magenta", weight=3]; 145 -> 177[label="",style="dashed", color="magenta", weight=3]; 146[label="primPlusNat (Succ vuz1800) vuz400",fontsize=16,color="burlywood",shape="box"];1074[label="vuz400/Succ vuz4000",fontsize=10,color="white",style="solid",shape="box"];146 -> 1074[label="",style="solid", color="burlywood", weight=9]; 1074 -> 178[label="",style="solid", color="burlywood", weight=3]; 1075[label="vuz400/Zero",fontsize=10,color="white",style="solid",shape="box"];146 -> 1075[label="",style="solid", color="burlywood", weight=9]; 1075 -> 179[label="",style="solid", color="burlywood", weight=3]; 147[label="primPlusNat Zero vuz400",fontsize=16,color="burlywood",shape="box"];1076[label="vuz400/Succ vuz4000",fontsize=10,color="white",style="solid",shape="box"];147 -> 1076[label="",style="solid", color="burlywood", weight=9]; 1076 -> 180[label="",style="solid", color="burlywood", weight=3]; 1077[label="vuz400/Zero",fontsize=10,color="white",style="solid",shape="box"];147 -> 1077[label="",style="solid", color="burlywood", weight=9]; 1077 -> 181[label="",style="solid", color="burlywood", weight=3]; 148[label="False",fontsize=16,color="green",shape="box"];149[label="True",fontsize=16,color="green",shape="box"];150[label="False",fontsize=16,color="green",shape="box"];151[label="True",fontsize=16,color="green",shape="box"];152[label="vuz12",fontsize=16,color="green",shape="box"];153[label="vuz11",fontsize=16,color="green",shape="box"];154[label="vuz12",fontsize=16,color="green",shape="box"];155[label="vuz11",fontsize=16,color="green",shape="box"];156[label="vuz14",fontsize=16,color="green",shape="box"];157[label="vuz13",fontsize=16,color="green",shape="box"];158[label="Integer vuz190 `quot` reduce2D vuz21 vuz20",fontsize=16,color="black",shape="box"];158 -> 182[label="",style="solid", color="black", weight=3]; 159[label="vuz12",fontsize=16,color="green",shape="box"];160[label="vuz11",fontsize=16,color="green",shape="box"];161[label="vuz12",fontsize=16,color="green",shape="box"];162[label="vuz11",fontsize=16,color="green",shape="box"];163[label="vuz14",fontsize=16,color="green",shape="box"];164[label="vuz13",fontsize=16,color="green",shape="box"];165[label="primQuotInt vuz22 (reduce2D vuz24 vuz23)",fontsize=16,color="burlywood",shape="box"];1078[label="vuz22/Pos vuz220",fontsize=10,color="white",style="solid",shape="box"];165 -> 1078[label="",style="solid", color="burlywood", weight=9]; 1078 -> 183[label="",style="solid", color="burlywood", weight=3]; 1079[label="vuz22/Neg vuz220",fontsize=10,color="white",style="solid",shape="box"];165 -> 1079[label="",style="solid", color="burlywood", weight=9]; 1079 -> 184[label="",style="solid", color="burlywood", weight=3]; 166[label="vuz14",fontsize=16,color="green",shape="box"];167[label="vuz13",fontsize=16,color="green",shape="box"];168[label="vuz12",fontsize=16,color="green",shape="box"];169[label="vuz11",fontsize=16,color="green",shape="box"];170[label="vuz14",fontsize=16,color="green",shape="box"];171[label="vuz13",fontsize=16,color="green",shape="box"];172[label="vuz14",fontsize=16,color="green",shape="box"];173[label="vuz13",fontsize=16,color="green",shape="box"];174[label="vuz12",fontsize=16,color="green",shape="box"];175[label="vuz11",fontsize=16,color="green",shape="box"];176[label="vuz14",fontsize=16,color="green",shape="box"];177[label="vuz13",fontsize=16,color="green",shape="box"];178[label="primPlusNat (Succ vuz1800) (Succ vuz4000)",fontsize=16,color="black",shape="box"];178 -> 185[label="",style="solid", color="black", weight=3]; 179[label="primPlusNat (Succ vuz1800) Zero",fontsize=16,color="black",shape="box"];179 -> 186[label="",style="solid", color="black", weight=3]; 180[label="primPlusNat Zero (Succ vuz4000)",fontsize=16,color="black",shape="box"];180 -> 187[label="",style="solid", color="black", weight=3]; 181[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];181 -> 188[label="",style="solid", color="black", weight=3]; 182 -> 276[label="",style="dashed", color="red", weight=0]; 182[label="Integer vuz190 `quot` gcd vuz21 vuz20",fontsize=16,color="magenta"];182 -> 277[label="",style="dashed", color="magenta", weight=3]; 183[label="primQuotInt (Pos vuz220) (reduce2D vuz24 vuz23)",fontsize=16,color="black",shape="box"];183 -> 190[label="",style="solid", color="black", weight=3]; 184[label="primQuotInt (Neg vuz220) (reduce2D vuz24 vuz23)",fontsize=16,color="black",shape="box"];184 -> 191[label="",style="solid", color="black", weight=3]; 185[label="Succ (Succ (primPlusNat vuz1800 vuz4000))",fontsize=16,color="green",shape="box"];185 -> 192[label="",style="dashed", color="green", weight=3]; 186[label="Succ vuz1800",fontsize=16,color="green",shape="box"];187[label="Succ vuz4000",fontsize=16,color="green",shape="box"];188[label="Zero",fontsize=16,color="green",shape="box"];277[label="gcd vuz21 vuz20",fontsize=16,color="black",shape="box"];277 -> 293[label="",style="solid", color="black", weight=3]; 276[label="Integer vuz190 `quot` vuz36",fontsize=16,color="burlywood",shape="triangle"];1080[label="vuz36/Integer vuz360",fontsize=10,color="white",style="solid",shape="box"];276 -> 1080[label="",style="solid", color="burlywood", weight=9]; 1080 -> 294[label="",style="solid", color="burlywood", weight=3]; 190 -> 312[label="",style="dashed", color="red", weight=0]; 190[label="primQuotInt (Pos vuz220) (gcd vuz24 vuz23)",fontsize=16,color="magenta"];190 -> 313[label="",style="dashed", color="magenta", weight=3]; 191[label="primQuotInt (Neg vuz220) (gcd vuz24 vuz23)",fontsize=16,color="black",shape="box"];191 -> 195[label="",style="solid", color="black", weight=3]; 192 -> 123[label="",style="dashed", color="red", weight=0]; 192[label="primPlusNat vuz1800 vuz4000",fontsize=16,color="magenta"];192 -> 196[label="",style="dashed", color="magenta", weight=3]; 192 -> 197[label="",style="dashed", color="magenta", weight=3]; 293[label="gcd3 vuz21 vuz20",fontsize=16,color="black",shape="box"];293 -> 300[label="",style="solid", color="black", weight=3]; 294[label="Integer vuz190 `quot` Integer vuz360",fontsize=16,color="black",shape="box"];294 -> 301[label="",style="solid", color="black", weight=3]; 313[label="gcd vuz24 vuz23",fontsize=16,color="black",shape="box"];313 -> 329[label="",style="solid", color="black", weight=3]; 312[label="primQuotInt (Pos vuz220) vuz40",fontsize=16,color="burlywood",shape="triangle"];1081[label="vuz40/Pos vuz400",fontsize=10,color="white",style="solid",shape="box"];312 -> 1081[label="",style="solid", color="burlywood", weight=9]; 1081 -> 330[label="",style="solid", color="burlywood", weight=3]; 1082[label="vuz40/Neg vuz400",fontsize=10,color="white",style="solid",shape="box"];312 -> 1082[label="",style="solid", color="burlywood", weight=9]; 1082 -> 331[label="",style="solid", color="burlywood", weight=3]; 195[label="primQuotInt (Neg vuz220) (gcd3 vuz24 vuz23)",fontsize=16,color="black",shape="box"];195 -> 201[label="",style="solid", color="black", weight=3]; 196[label="vuz4000",fontsize=16,color="green",shape="box"];197[label="vuz1800",fontsize=16,color="green",shape="box"];300 -> 306[label="",style="dashed", color="red", weight=0]; 300[label="gcd2 (vuz21 == fromInt (Pos Zero)) vuz21 vuz20",fontsize=16,color="magenta"];300 -> 307[label="",style="dashed", color="magenta", weight=3]; 301[label="Integer (primQuotInt vuz190 vuz360)",fontsize=16,color="green",shape="box"];301 -> 308[label="",style="dashed", color="green", weight=3]; 329[label="gcd3 vuz24 vuz23",fontsize=16,color="black",shape="box"];329 -> 341[label="",style="solid", color="black", weight=3]; 330[label="primQuotInt (Pos vuz220) (Pos vuz400)",fontsize=16,color="burlywood",shape="box"];1083[label="vuz400/Succ vuz4000",fontsize=10,color="white",style="solid",shape="box"];330 -> 1083[label="",style="solid", color="burlywood", weight=9]; 1083 -> 342[label="",style="solid", color="burlywood", weight=3]; 1084[label="vuz400/Zero",fontsize=10,color="white",style="solid",shape="box"];330 -> 1084[label="",style="solid", color="burlywood", weight=9]; 1084 -> 343[label="",style="solid", color="burlywood", weight=3]; 331[label="primQuotInt (Pos vuz220) (Neg vuz400)",fontsize=16,color="burlywood",shape="box"];1085[label="vuz400/Succ vuz4000",fontsize=10,color="white",style="solid",shape="box"];331 -> 1085[label="",style="solid", color="burlywood", weight=9]; 1085 -> 344[label="",style="solid", color="burlywood", weight=3]; 1086[label="vuz400/Zero",fontsize=10,color="white",style="solid",shape="box"];331 -> 1086[label="",style="solid", color="burlywood", weight=9]; 1086 -> 345[label="",style="solid", color="burlywood", weight=3]; 201 -> 207[label="",style="dashed", color="red", weight=0]; 201[label="primQuotInt (Neg vuz220) (gcd2 (vuz24 == fromInt (Pos Zero)) vuz24 vuz23)",fontsize=16,color="magenta"];201 -> 208[label="",style="dashed", color="magenta", weight=3]; 307 -> 76[label="",style="dashed", color="red", weight=0]; 307[label="vuz21 == fromInt (Pos Zero)",fontsize=16,color="magenta"];307 -> 309[label="",style="dashed", color="magenta", weight=3]; 306[label="gcd2 vuz39 vuz21 vuz20",fontsize=16,color="burlywood",shape="triangle"];1087[label="vuz39/False",fontsize=10,color="white",style="solid",shape="box"];306 -> 1087[label="",style="solid", color="burlywood", weight=9]; 1087 -> 310[label="",style="solid", color="burlywood", weight=3]; 1088[label="vuz39/True",fontsize=10,color="white",style="solid",shape="box"];306 -> 1088[label="",style="solid", color="burlywood", weight=9]; 1088 -> 311[label="",style="solid", color="burlywood", weight=3]; 308[label="primQuotInt vuz190 vuz360",fontsize=16,color="burlywood",shape="triangle"];1089[label="vuz190/Pos vuz1900",fontsize=10,color="white",style="solid",shape="box"];308 -> 1089[label="",style="solid", color="burlywood", weight=9]; 1089 -> 332[label="",style="solid", color="burlywood", weight=3]; 1090[label="vuz190/Neg vuz1900",fontsize=10,color="white",style="solid",shape="box"];308 -> 1090[label="",style="solid", color="burlywood", weight=9]; 1090 -> 333[label="",style="solid", color="burlywood", weight=3]; 341 -> 353[label="",style="dashed", color="red", weight=0]; 341[label="gcd2 (vuz24 == fromInt (Pos Zero)) vuz24 vuz23",fontsize=16,color="magenta"];341 -> 354[label="",style="dashed", color="magenta", weight=3]; 342[label="primQuotInt (Pos vuz220) (Pos (Succ vuz4000))",fontsize=16,color="black",shape="box"];342 -> 355[label="",style="solid", color="black", weight=3]; 343[label="primQuotInt (Pos vuz220) (Pos Zero)",fontsize=16,color="black",shape="box"];343 -> 356[label="",style="solid", color="black", weight=3]; 344[label="primQuotInt (Pos vuz220) (Neg (Succ vuz4000))",fontsize=16,color="black",shape="box"];344 -> 357[label="",style="solid", color="black", weight=3]; 345[label="primQuotInt (Pos vuz220) (Neg Zero)",fontsize=16,color="black",shape="box"];345 -> 358[label="",style="solid", color="black", weight=3]; 208 -> 78[label="",style="dashed", color="red", weight=0]; 208[label="vuz24 == fromInt (Pos Zero)",fontsize=16,color="magenta"];208 -> 214[label="",style="dashed", color="magenta", weight=3]; 207[label="primQuotInt (Neg vuz220) (gcd2 vuz27 vuz24 vuz23)",fontsize=16,color="burlywood",shape="triangle"];1091[label="vuz27/False",fontsize=10,color="white",style="solid",shape="box"];207 -> 1091[label="",style="solid", color="burlywood", weight=9]; 1091 -> 215[label="",style="solid", color="burlywood", weight=3]; 1092[label="vuz27/True",fontsize=10,color="white",style="solid",shape="box"];207 -> 1092[label="",style="solid", color="burlywood", weight=9]; 1092 -> 216[label="",style="solid", color="burlywood", weight=3]; 309[label="vuz21",fontsize=16,color="green",shape="box"];310[label="gcd2 False vuz21 vuz20",fontsize=16,color="black",shape="box"];310 -> 334[label="",style="solid", color="black", weight=3]; 311[label="gcd2 True vuz21 vuz20",fontsize=16,color="black",shape="box"];311 -> 335[label="",style="solid", color="black", weight=3]; 332[label="primQuotInt (Pos vuz1900) vuz360",fontsize=16,color="burlywood",shape="box"];1093[label="vuz360/Pos vuz3600",fontsize=10,color="white",style="solid",shape="box"];332 -> 1093[label="",style="solid", color="burlywood", weight=9]; 1093 -> 346[label="",style="solid", color="burlywood", weight=3]; 1094[label="vuz360/Neg vuz3600",fontsize=10,color="white",style="solid",shape="box"];332 -> 1094[label="",style="solid", color="burlywood", weight=9]; 1094 -> 347[label="",style="solid", color="burlywood", weight=3]; 333[label="primQuotInt (Neg vuz1900) vuz360",fontsize=16,color="burlywood",shape="box"];1095[label="vuz360/Pos vuz3600",fontsize=10,color="white",style="solid",shape="box"];333 -> 1095[label="",style="solid", color="burlywood", weight=9]; 1095 -> 348[label="",style="solid", color="burlywood", weight=3]; 1096[label="vuz360/Neg vuz3600",fontsize=10,color="white",style="solid",shape="box"];333 -> 1096[label="",style="solid", color="burlywood", weight=9]; 1096 -> 349[label="",style="solid", color="burlywood", weight=3]; 354 -> 78[label="",style="dashed", color="red", weight=0]; 354[label="vuz24 == fromInt (Pos Zero)",fontsize=16,color="magenta"];354 -> 359[label="",style="dashed", color="magenta", weight=3]; 353[label="gcd2 vuz42 vuz24 vuz23",fontsize=16,color="burlywood",shape="triangle"];1097[label="vuz42/False",fontsize=10,color="white",style="solid",shape="box"];353 -> 1097[label="",style="solid", color="burlywood", weight=9]; 1097 -> 360[label="",style="solid", color="burlywood", weight=3]; 1098[label="vuz42/True",fontsize=10,color="white",style="solid",shape="box"];353 -> 1098[label="",style="solid", color="burlywood", weight=9]; 1098 -> 361[label="",style="solid", color="burlywood", weight=3]; 355[label="Pos (primDivNatS vuz220 (Succ vuz4000))",fontsize=16,color="green",shape="box"];355 -> 377[label="",style="dashed", color="green", weight=3]; 356[label="error []",fontsize=16,color="black",shape="triangle"];356 -> 378[label="",style="solid", color="black", weight=3]; 357[label="Neg (primDivNatS vuz220 (Succ vuz4000))",fontsize=16,color="green",shape="box"];357 -> 379[label="",style="dashed", color="green", weight=3]; 358 -> 356[label="",style="dashed", color="red", weight=0]; 358[label="error []",fontsize=16,color="magenta"];214[label="vuz24",fontsize=16,color="green",shape="box"];215[label="primQuotInt (Neg vuz220) (gcd2 False vuz24 vuz23)",fontsize=16,color="black",shape="box"];215 -> 222[label="",style="solid", color="black", weight=3]; 216[label="primQuotInt (Neg vuz220) (gcd2 True vuz24 vuz23)",fontsize=16,color="black",shape="box"];216 -> 223[label="",style="solid", color="black", weight=3]; 334[label="gcd0 vuz21 vuz20",fontsize=16,color="black",shape="triangle"];334 -> 350[label="",style="solid", color="black", weight=3]; 335 -> 351[label="",style="dashed", color="red", weight=0]; 335[label="gcd1 (vuz20 == fromInt (Pos Zero)) vuz21 vuz20",fontsize=16,color="magenta"];335 -> 352[label="",style="dashed", color="magenta", weight=3]; 346[label="primQuotInt (Pos vuz1900) (Pos vuz3600)",fontsize=16,color="burlywood",shape="box"];1099[label="vuz3600/Succ vuz36000",fontsize=10,color="white",style="solid",shape="box"];346 -> 1099[label="",style="solid", color="burlywood", weight=9]; 1099 -> 362[label="",style="solid", color="burlywood", weight=3]; 1100[label="vuz3600/Zero",fontsize=10,color="white",style="solid",shape="box"];346 -> 1100[label="",style="solid", color="burlywood", weight=9]; 1100 -> 363[label="",style="solid", color="burlywood", weight=3]; 347[label="primQuotInt (Pos vuz1900) (Neg vuz3600)",fontsize=16,color="burlywood",shape="box"];1101[label="vuz3600/Succ vuz36000",fontsize=10,color="white",style="solid",shape="box"];347 -> 1101[label="",style="solid", color="burlywood", weight=9]; 1101 -> 364[label="",style="solid", color="burlywood", weight=3]; 1102[label="vuz3600/Zero",fontsize=10,color="white",style="solid",shape="box"];347 -> 1102[label="",style="solid", color="burlywood", weight=9]; 1102 -> 365[label="",style="solid", color="burlywood", weight=3]; 348[label="primQuotInt (Neg vuz1900) (Pos vuz3600)",fontsize=16,color="burlywood",shape="box"];1103[label="vuz3600/Succ vuz36000",fontsize=10,color="white",style="solid",shape="box"];348 -> 1103[label="",style="solid", color="burlywood", weight=9]; 1103 -> 366[label="",style="solid", color="burlywood", weight=3]; 1104[label="vuz3600/Zero",fontsize=10,color="white",style="solid",shape="box"];348 -> 1104[label="",style="solid", color="burlywood", weight=9]; 1104 -> 367[label="",style="solid", color="burlywood", weight=3]; 349[label="primQuotInt (Neg vuz1900) (Neg vuz3600)",fontsize=16,color="burlywood",shape="box"];1105[label="vuz3600/Succ vuz36000",fontsize=10,color="white",style="solid",shape="box"];349 -> 1105[label="",style="solid", color="burlywood", weight=9]; 1105 -> 368[label="",style="solid", color="burlywood", weight=3]; 1106[label="vuz3600/Zero",fontsize=10,color="white",style="solid",shape="box"];349 -> 1106[label="",style="solid", color="burlywood", weight=9]; 1106 -> 369[label="",style="solid", color="burlywood", weight=3]; 359[label="vuz24",fontsize=16,color="green",shape="box"];360[label="gcd2 False vuz24 vuz23",fontsize=16,color="black",shape="box"];360 -> 380[label="",style="solid", color="black", weight=3]; 361[label="gcd2 True vuz24 vuz23",fontsize=16,color="black",shape="box"];361 -> 381[label="",style="solid", color="black", weight=3]; 377[label="primDivNatS vuz220 (Succ vuz4000)",fontsize=16,color="burlywood",shape="triangle"];1107[label="vuz220/Succ vuz2200",fontsize=10,color="white",style="solid",shape="box"];377 -> 1107[label="",style="solid", color="burlywood", weight=9]; 1107 -> 397[label="",style="solid", color="burlywood", weight=3]; 1108[label="vuz220/Zero",fontsize=10,color="white",style="solid",shape="box"];377 -> 1108[label="",style="solid", color="burlywood", weight=9]; 1108 -> 398[label="",style="solid", color="burlywood", weight=3]; 378[label="error []",fontsize=16,color="red",shape="box"];379 -> 377[label="",style="dashed", color="red", weight=0]; 379[label="primDivNatS vuz220 (Succ vuz4000)",fontsize=16,color="magenta"];379 -> 399[label="",style="dashed", color="magenta", weight=3]; 222[label="primQuotInt (Neg vuz220) (gcd0 vuz24 vuz23)",fontsize=16,color="black",shape="triangle"];222 -> 231[label="",style="solid", color="black", weight=3]; 223 -> 232[label="",style="dashed", color="red", weight=0]; 223[label="primQuotInt (Neg vuz220) (gcd1 (vuz23 == fromInt (Pos Zero)) vuz24 vuz23)",fontsize=16,color="magenta"];223 -> 233[label="",style="dashed", color="magenta", weight=3]; 350[label="gcd0Gcd' (abs vuz21) (abs vuz20)",fontsize=16,color="black",shape="box"];350 -> 370[label="",style="solid", color="black", weight=3]; 352 -> 76[label="",style="dashed", color="red", weight=0]; 352[label="vuz20 == fromInt (Pos Zero)",fontsize=16,color="magenta"];352 -> 371[label="",style="dashed", color="magenta", weight=3]; 351[label="gcd1 vuz41 vuz21 vuz20",fontsize=16,color="burlywood",shape="triangle"];1109[label="vuz41/False",fontsize=10,color="white",style="solid",shape="box"];351 -> 1109[label="",style="solid", color="burlywood", weight=9]; 1109 -> 372[label="",style="solid", color="burlywood", weight=3]; 1110[label="vuz41/True",fontsize=10,color="white",style="solid",shape="box"];351 -> 1110[label="",style="solid", color="burlywood", weight=9]; 1110 -> 373[label="",style="solid", color="burlywood", weight=3]; 362[label="primQuotInt (Pos vuz1900) (Pos (Succ vuz36000))",fontsize=16,color="black",shape="box"];362 -> 382[label="",style="solid", color="black", weight=3]; 363[label="primQuotInt (Pos vuz1900) (Pos Zero)",fontsize=16,color="black",shape="box"];363 -> 383[label="",style="solid", color="black", weight=3]; 364[label="primQuotInt (Pos vuz1900) (Neg (Succ vuz36000))",fontsize=16,color="black",shape="box"];364 -> 384[label="",style="solid", color="black", weight=3]; 365[label="primQuotInt (Pos vuz1900) (Neg Zero)",fontsize=16,color="black",shape="box"];365 -> 385[label="",style="solid", color="black", weight=3]; 366[label="primQuotInt (Neg vuz1900) (Pos (Succ vuz36000))",fontsize=16,color="black",shape="box"];366 -> 386[label="",style="solid", color="black", weight=3]; 367[label="primQuotInt (Neg vuz1900) (Pos Zero)",fontsize=16,color="black",shape="box"];367 -> 387[label="",style="solid", color="black", weight=3]; 368[label="primQuotInt (Neg vuz1900) (Neg (Succ vuz36000))",fontsize=16,color="black",shape="box"];368 -> 388[label="",style="solid", color="black", weight=3]; 369[label="primQuotInt (Neg vuz1900) (Neg Zero)",fontsize=16,color="black",shape="box"];369 -> 389[label="",style="solid", color="black", weight=3]; 380[label="gcd0 vuz24 vuz23",fontsize=16,color="black",shape="triangle"];380 -> 400[label="",style="solid", color="black", weight=3]; 381 -> 401[label="",style="dashed", color="red", weight=0]; 381[label="gcd1 (vuz23 == fromInt (Pos Zero)) vuz24 vuz23",fontsize=16,color="magenta"];381 -> 402[label="",style="dashed", color="magenta", weight=3]; 397[label="primDivNatS (Succ vuz2200) (Succ vuz4000)",fontsize=16,color="black",shape="box"];397 -> 403[label="",style="solid", color="black", weight=3]; 398[label="primDivNatS Zero (Succ vuz4000)",fontsize=16,color="black",shape="box"];398 -> 404[label="",style="solid", color="black", weight=3]; 399[label="vuz4000",fontsize=16,color="green",shape="box"];231[label="primQuotInt (Neg vuz220) (gcd0Gcd' (abs vuz24) (abs vuz23))",fontsize=16,color="black",shape="box"];231 -> 241[label="",style="solid", color="black", weight=3]; 233 -> 78[label="",style="dashed", color="red", weight=0]; 233[label="vuz23 == fromInt (Pos Zero)",fontsize=16,color="magenta"];233 -> 242[label="",style="dashed", color="magenta", weight=3]; 232[label="primQuotInt (Neg vuz220) (gcd1 vuz30 vuz24 vuz23)",fontsize=16,color="burlywood",shape="triangle"];1111[label="vuz30/False",fontsize=10,color="white",style="solid",shape="box"];232 -> 1111[label="",style="solid", color="burlywood", weight=9]; 1111 -> 243[label="",style="solid", color="burlywood", weight=3]; 1112[label="vuz30/True",fontsize=10,color="white",style="solid",shape="box"];232 -> 1112[label="",style="solid", color="burlywood", weight=9]; 1112 -> 244[label="",style="solid", color="burlywood", weight=3]; 370[label="gcd0Gcd'2 (abs vuz21) (abs vuz20)",fontsize=16,color="black",shape="box"];370 -> 390[label="",style="solid", color="black", weight=3]; 371[label="vuz20",fontsize=16,color="green",shape="box"];372[label="gcd1 False vuz21 vuz20",fontsize=16,color="black",shape="box"];372 -> 391[label="",style="solid", color="black", weight=3]; 373[label="gcd1 True vuz21 vuz20",fontsize=16,color="black",shape="box"];373 -> 392[label="",style="solid", color="black", weight=3]; 382[label="Pos (primDivNatS vuz1900 (Succ vuz36000))",fontsize=16,color="green",shape="box"];382 -> 405[label="",style="dashed", color="green", weight=3]; 383 -> 356[label="",style="dashed", color="red", weight=0]; 383[label="error []",fontsize=16,color="magenta"];384[label="Neg (primDivNatS vuz1900 (Succ vuz36000))",fontsize=16,color="green",shape="box"];384 -> 406[label="",style="dashed", color="green", weight=3]; 385 -> 356[label="",style="dashed", color="red", weight=0]; 385[label="error []",fontsize=16,color="magenta"];386[label="Neg (primDivNatS vuz1900 (Succ vuz36000))",fontsize=16,color="green",shape="box"];386 -> 407[label="",style="dashed", color="green", weight=3]; 387 -> 356[label="",style="dashed", color="red", weight=0]; 387[label="error []",fontsize=16,color="magenta"];388[label="Pos (primDivNatS vuz1900 (Succ vuz36000))",fontsize=16,color="green",shape="box"];388 -> 408[label="",style="dashed", color="green", weight=3]; 389 -> 356[label="",style="dashed", color="red", weight=0]; 389[label="error []",fontsize=16,color="magenta"];400 -> 409[label="",style="dashed", color="red", weight=0]; 400[label="gcd0Gcd' (abs vuz24) (abs vuz23)",fontsize=16,color="magenta"];400 -> 410[label="",style="dashed", color="magenta", weight=3]; 400 -> 411[label="",style="dashed", color="magenta", weight=3]; 402 -> 78[label="",style="dashed", color="red", weight=0]; 402[label="vuz23 == fromInt (Pos Zero)",fontsize=16,color="magenta"];402 -> 414[label="",style="dashed", color="magenta", weight=3]; 401[label="gcd1 vuz45 vuz24 vuz23",fontsize=16,color="burlywood",shape="triangle"];1113[label="vuz45/False",fontsize=10,color="white",style="solid",shape="box"];401 -> 1113[label="",style="solid", color="burlywood", weight=9]; 1113 -> 415[label="",style="solid", color="burlywood", weight=3]; 1114[label="vuz45/True",fontsize=10,color="white",style="solid",shape="box"];401 -> 1114[label="",style="solid", color="burlywood", weight=9]; 1114 -> 416[label="",style="solid", color="burlywood", weight=3]; 403[label="primDivNatS0 vuz2200 vuz4000 (primGEqNatS vuz2200 vuz4000)",fontsize=16,color="burlywood",shape="box"];1115[label="vuz2200/Succ vuz22000",fontsize=10,color="white",style="solid",shape="box"];403 -> 1115[label="",style="solid", color="burlywood", weight=9]; 1115 -> 417[label="",style="solid", color="burlywood", weight=3]; 1116[label="vuz2200/Zero",fontsize=10,color="white",style="solid",shape="box"];403 -> 1116[label="",style="solid", color="burlywood", weight=9]; 1116 -> 418[label="",style="solid", color="burlywood", weight=3]; 404[label="Zero",fontsize=16,color="green",shape="box"];241[label="primQuotInt (Neg vuz220) (gcd0Gcd'2 (abs vuz24) (abs vuz23))",fontsize=16,color="black",shape="box"];241 -> 251[label="",style="solid", color="black", weight=3]; 242[label="vuz23",fontsize=16,color="green",shape="box"];243[label="primQuotInt (Neg vuz220) (gcd1 False vuz24 vuz23)",fontsize=16,color="black",shape="box"];243 -> 252[label="",style="solid", color="black", weight=3]; 244[label="primQuotInt (Neg vuz220) (gcd1 True vuz24 vuz23)",fontsize=16,color="black",shape="box"];244 -> 253[label="",style="solid", color="black", weight=3]; 390 -> 419[label="",style="dashed", color="red", weight=0]; 390[label="gcd0Gcd'1 (abs vuz20 == fromInt (Pos Zero)) (abs vuz21) (abs vuz20)",fontsize=16,color="magenta"];390 -> 420[label="",style="dashed", color="magenta", weight=3]; 391 -> 334[label="",style="dashed", color="red", weight=0]; 391[label="gcd0 vuz21 vuz20",fontsize=16,color="magenta"];392[label="error []",fontsize=16,color="black",shape="box"];392 -> 421[label="",style="solid", color="black", weight=3]; 405 -> 377[label="",style="dashed", color="red", weight=0]; 405[label="primDivNatS vuz1900 (Succ vuz36000)",fontsize=16,color="magenta"];405 -> 422[label="",style="dashed", color="magenta", weight=3]; 405 -> 423[label="",style="dashed", color="magenta", weight=3]; 406 -> 377[label="",style="dashed", color="red", weight=0]; 406[label="primDivNatS vuz1900 (Succ vuz36000)",fontsize=16,color="magenta"];406 -> 424[label="",style="dashed", color="magenta", weight=3]; 406 -> 425[label="",style="dashed", color="magenta", weight=3]; 407 -> 377[label="",style="dashed", color="red", weight=0]; 407[label="primDivNatS vuz1900 (Succ vuz36000)",fontsize=16,color="magenta"];407 -> 426[label="",style="dashed", color="magenta", weight=3]; 407 -> 427[label="",style="dashed", color="magenta", weight=3]; 408 -> 377[label="",style="dashed", color="red", weight=0]; 408[label="primDivNatS vuz1900 (Succ vuz36000)",fontsize=16,color="magenta"];408 -> 428[label="",style="dashed", color="magenta", weight=3]; 408 -> 429[label="",style="dashed", color="magenta", weight=3]; 410 -> 266[label="",style="dashed", color="red", weight=0]; 410[label="abs vuz23",fontsize=16,color="magenta"];411 -> 266[label="",style="dashed", color="red", weight=0]; 411[label="abs vuz24",fontsize=16,color="magenta"];411 -> 430[label="",style="dashed", color="magenta", weight=3]; 409[label="gcd0Gcd' vuz47 vuz46",fontsize=16,color="black",shape="triangle"];409 -> 431[label="",style="solid", color="black", weight=3]; 414[label="vuz23",fontsize=16,color="green",shape="box"];415[label="gcd1 False vuz24 vuz23",fontsize=16,color="black",shape="box"];415 -> 432[label="",style="solid", color="black", weight=3]; 416[label="gcd1 True vuz24 vuz23",fontsize=16,color="black",shape="box"];416 -> 433[label="",style="solid", color="black", weight=3]; 417[label="primDivNatS0 (Succ vuz22000) vuz4000 (primGEqNatS (Succ vuz22000) vuz4000)",fontsize=16,color="burlywood",shape="box"];1117[label="vuz4000/Succ vuz40000",fontsize=10,color="white",style="solid",shape="box"];417 -> 1117[label="",style="solid", color="burlywood", weight=9]; 1117 -> 434[label="",style="solid", color="burlywood", weight=3]; 1118[label="vuz4000/Zero",fontsize=10,color="white",style="solid",shape="box"];417 -> 1118[label="",style="solid", color="burlywood", weight=9]; 1118 -> 435[label="",style="solid", color="burlywood", weight=3]; 418[label="primDivNatS0 Zero vuz4000 (primGEqNatS Zero vuz4000)",fontsize=16,color="burlywood",shape="box"];1119[label="vuz4000/Succ vuz40000",fontsize=10,color="white",style="solid",shape="box"];418 -> 1119[label="",style="solid", color="burlywood", weight=9]; 1119 -> 436[label="",style="solid", color="burlywood", weight=3]; 1120[label="vuz4000/Zero",fontsize=10,color="white",style="solid",shape="box"];418 -> 1120[label="",style="solid", color="burlywood", weight=9]; 1120 -> 437[label="",style="solid", color="burlywood", weight=3]; 251 -> 260[label="",style="dashed", color="red", weight=0]; 251[label="primQuotInt (Neg vuz220) (gcd0Gcd'1 (abs vuz23 == fromInt (Pos Zero)) (abs vuz24) (abs vuz23))",fontsize=16,color="magenta"];251 -> 261[label="",style="dashed", color="magenta", weight=3]; 252 -> 222[label="",style="dashed", color="red", weight=0]; 252[label="primQuotInt (Neg vuz220) (gcd0 vuz24 vuz23)",fontsize=16,color="magenta"];253[label="primQuotInt (Neg vuz220) (error [])",fontsize=16,color="black",shape="box"];253 -> 262[label="",style="solid", color="black", weight=3]; 420 -> 76[label="",style="dashed", color="red", weight=0]; 420[label="abs vuz20 == fromInt (Pos Zero)",fontsize=16,color="magenta"];420 -> 438[label="",style="dashed", color="magenta", weight=3]; 419[label="gcd0Gcd'1 vuz48 (abs vuz21) (abs vuz20)",fontsize=16,color="burlywood",shape="triangle"];1121[label="vuz48/False",fontsize=10,color="white",style="solid",shape="box"];419 -> 1121[label="",style="solid", color="burlywood", weight=9]; 1121 -> 439[label="",style="solid", color="burlywood", weight=3]; 1122[label="vuz48/True",fontsize=10,color="white",style="solid",shape="box"];419 -> 1122[label="",style="solid", color="burlywood", weight=9]; 1122 -> 440[label="",style="solid", color="burlywood", weight=3]; 421[label="error []",fontsize=16,color="red",shape="box"];422[label="vuz1900",fontsize=16,color="green",shape="box"];423[label="vuz36000",fontsize=16,color="green",shape="box"];424[label="vuz1900",fontsize=16,color="green",shape="box"];425[label="vuz36000",fontsize=16,color="green",shape="box"];426[label="vuz1900",fontsize=16,color="green",shape="box"];427[label="vuz36000",fontsize=16,color="green",shape="box"];428[label="vuz1900",fontsize=16,color="green",shape="box"];429[label="vuz36000",fontsize=16,color="green",shape="box"];266[label="abs vuz23",fontsize=16,color="black",shape="triangle"];266 -> 295[label="",style="solid", color="black", weight=3]; 430[label="vuz24",fontsize=16,color="green",shape="box"];431[label="gcd0Gcd'2 vuz47 vuz46",fontsize=16,color="black",shape="box"];431 -> 443[label="",style="solid", color="black", weight=3]; 432 -> 380[label="",style="dashed", color="red", weight=0]; 432[label="gcd0 vuz24 vuz23",fontsize=16,color="magenta"];433 -> 356[label="",style="dashed", color="red", weight=0]; 433[label="error []",fontsize=16,color="magenta"];434[label="primDivNatS0 (Succ vuz22000) (Succ vuz40000) (primGEqNatS (Succ vuz22000) (Succ vuz40000))",fontsize=16,color="black",shape="box"];434 -> 444[label="",style="solid", color="black", weight=3]; 435[label="primDivNatS0 (Succ vuz22000) Zero (primGEqNatS (Succ vuz22000) Zero)",fontsize=16,color="black",shape="box"];435 -> 445[label="",style="solid", color="black", weight=3]; 436[label="primDivNatS0 Zero (Succ vuz40000) (primGEqNatS Zero (Succ vuz40000))",fontsize=16,color="black",shape="box"];436 -> 446[label="",style="solid", color="black", weight=3]; 437[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];437 -> 447[label="",style="solid", color="black", weight=3]; 261 -> 78[label="",style="dashed", color="red", weight=0]; 261[label="abs vuz23 == fromInt (Pos Zero)",fontsize=16,color="magenta"];261 -> 269[label="",style="dashed", color="magenta", weight=3]; 260[label="primQuotInt (Neg vuz220) (gcd0Gcd'1 vuz33 (abs vuz24) (abs vuz23))",fontsize=16,color="burlywood",shape="triangle"];1123[label="vuz33/False",fontsize=10,color="white",style="solid",shape="box"];260 -> 1123[label="",style="solid", color="burlywood", weight=9]; 1123 -> 270[label="",style="solid", color="burlywood", weight=3]; 1124[label="vuz33/True",fontsize=10,color="white",style="solid",shape="box"];260 -> 1124[label="",style="solid", color="burlywood", weight=9]; 1124 -> 271[label="",style="solid", color="burlywood", weight=3]; 262[label="error []",fontsize=16,color="red",shape="box"];438[label="abs vuz20",fontsize=16,color="black",shape="triangle"];438 -> 448[label="",style="solid", color="black", weight=3]; 439[label="gcd0Gcd'1 False (abs vuz21) (abs vuz20)",fontsize=16,color="black",shape="box"];439 -> 449[label="",style="solid", color="black", weight=3]; 440[label="gcd0Gcd'1 True (abs vuz21) (abs vuz20)",fontsize=16,color="black",shape="box"];440 -> 450[label="",style="solid", color="black", weight=3]; 295[label="absReal vuz23",fontsize=16,color="black",shape="box"];295 -> 302[label="",style="solid", color="black", weight=3]; 443 -> 454[label="",style="dashed", color="red", weight=0]; 443[label="gcd0Gcd'1 (vuz46 == fromInt (Pos Zero)) vuz47 vuz46",fontsize=16,color="magenta"];443 -> 455[label="",style="dashed", color="magenta", weight=3]; 444 -> 791[label="",style="dashed", color="red", weight=0]; 444[label="primDivNatS0 (Succ vuz22000) (Succ vuz40000) (primGEqNatS vuz22000 vuz40000)",fontsize=16,color="magenta"];444 -> 792[label="",style="dashed", color="magenta", weight=3]; 444 -> 793[label="",style="dashed", color="magenta", weight=3]; 444 -> 794[label="",style="dashed", color="magenta", weight=3]; 444 -> 795[label="",style="dashed", color="magenta", weight=3]; 445[label="primDivNatS0 (Succ vuz22000) Zero True",fontsize=16,color="black",shape="box"];445 -> 458[label="",style="solid", color="black", weight=3]; 446[label="primDivNatS0 Zero (Succ vuz40000) False",fontsize=16,color="black",shape="box"];446 -> 459[label="",style="solid", color="black", weight=3]; 447[label="primDivNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];447 -> 460[label="",style="solid", color="black", weight=3]; 269 -> 266[label="",style="dashed", color="red", weight=0]; 269[label="abs vuz23",fontsize=16,color="magenta"];270[label="primQuotInt (Neg vuz220) (gcd0Gcd'1 False (abs vuz24) (abs vuz23))",fontsize=16,color="black",shape="box"];270 -> 298[label="",style="solid", color="black", weight=3]; 271[label="primQuotInt (Neg vuz220) (gcd0Gcd'1 True (abs vuz24) (abs vuz23))",fontsize=16,color="black",shape="box"];271 -> 299[label="",style="solid", color="black", weight=3]; 448[label="absReal vuz20",fontsize=16,color="black",shape="box"];448 -> 461[label="",style="solid", color="black", weight=3]; 449 -> 462[label="",style="dashed", color="red", weight=0]; 449[label="gcd0Gcd'0 (abs vuz21) (abs vuz20)",fontsize=16,color="magenta"];449 -> 463[label="",style="dashed", color="magenta", weight=3]; 449 -> 464[label="",style="dashed", color="magenta", weight=3]; 450 -> 438[label="",style="dashed", color="red", weight=0]; 450[label="abs vuz21",fontsize=16,color="magenta"];450 -> 465[label="",style="dashed", color="magenta", weight=3]; 302[label="absReal2 vuz23",fontsize=16,color="black",shape="box"];302 -> 340[label="",style="solid", color="black", weight=3]; 455 -> 78[label="",style="dashed", color="red", weight=0]; 455[label="vuz46 == fromInt (Pos Zero)",fontsize=16,color="magenta"];455 -> 466[label="",style="dashed", color="magenta", weight=3]; 454[label="gcd0Gcd'1 vuz49 vuz47 vuz46",fontsize=16,color="burlywood",shape="triangle"];1125[label="vuz49/False",fontsize=10,color="white",style="solid",shape="box"];454 -> 1125[label="",style="solid", color="burlywood", weight=9]; 1125 -> 467[label="",style="solid", color="burlywood", weight=3]; 1126[label="vuz49/True",fontsize=10,color="white",style="solid",shape="box"];454 -> 1126[label="",style="solid", color="burlywood", weight=9]; 1126 -> 468[label="",style="solid", color="burlywood", weight=3]; 792[label="vuz40000",fontsize=16,color="green",shape="box"];793[label="vuz22000",fontsize=16,color="green",shape="box"];794[label="vuz22000",fontsize=16,color="green",shape="box"];795[label="vuz40000",fontsize=16,color="green",shape="box"];791[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS vuz71 vuz72)",fontsize=16,color="burlywood",shape="triangle"];1127[label="vuz71/Succ vuz710",fontsize=10,color="white",style="solid",shape="box"];791 -> 1127[label="",style="solid", color="burlywood", weight=9]; 1127 -> 824[label="",style="solid", color="burlywood", weight=3]; 1128[label="vuz71/Zero",fontsize=10,color="white",style="solid",shape="box"];791 -> 1128[label="",style="solid", color="burlywood", weight=9]; 1128 -> 825[label="",style="solid", color="burlywood", weight=3]; 458[label="Succ (primDivNatS (primMinusNatS (Succ vuz22000) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];458 -> 473[label="",style="dashed", color="green", weight=3]; 459[label="Zero",fontsize=16,color="green",shape="box"];460[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];460 -> 474[label="",style="dashed", color="green", weight=3]; 298 -> 308[label="",style="dashed", color="red", weight=0]; 298[label="primQuotInt (Neg vuz220) (gcd0Gcd'0 (abs vuz24) (abs vuz23))",fontsize=16,color="magenta"];298 -> 336[label="",style="dashed", color="magenta", weight=3]; 298 -> 337[label="",style="dashed", color="magenta", weight=3]; 299 -> 308[label="",style="dashed", color="red", weight=0]; 299[label="primQuotInt (Neg vuz220) (abs vuz24)",fontsize=16,color="magenta"];299 -> 338[label="",style="dashed", color="magenta", weight=3]; 299 -> 339[label="",style="dashed", color="magenta", weight=3]; 461[label="absReal2 vuz20",fontsize=16,color="black",shape="box"];461 -> 475[label="",style="solid", color="black", weight=3]; 463 -> 438[label="",style="dashed", color="red", weight=0]; 463[label="abs vuz20",fontsize=16,color="magenta"];464 -> 438[label="",style="dashed", color="red", weight=0]; 464[label="abs vuz21",fontsize=16,color="magenta"];464 -> 476[label="",style="dashed", color="magenta", weight=3]; 462[label="gcd0Gcd'0 vuz51 vuz50",fontsize=16,color="black",shape="triangle"];462 -> 477[label="",style="solid", color="black", weight=3]; 465[label="vuz21",fontsize=16,color="green",shape="box"];340[label="absReal1 vuz23 (vuz23 >= fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];340 -> 396[label="",style="solid", color="black", weight=3]; 466[label="vuz46",fontsize=16,color="green",shape="box"];467[label="gcd0Gcd'1 False vuz47 vuz46",fontsize=16,color="black",shape="box"];467 -> 484[label="",style="solid", color="black", weight=3]; 468[label="gcd0Gcd'1 True vuz47 vuz46",fontsize=16,color="black",shape="box"];468 -> 485[label="",style="solid", color="black", weight=3]; 824[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS (Succ vuz710) vuz72)",fontsize=16,color="burlywood",shape="box"];1129[label="vuz72/Succ vuz720",fontsize=10,color="white",style="solid",shape="box"];824 -> 1129[label="",style="solid", color="burlywood", weight=9]; 1129 -> 832[label="",style="solid", color="burlywood", weight=3]; 1130[label="vuz72/Zero",fontsize=10,color="white",style="solid",shape="box"];824 -> 1130[label="",style="solid", color="burlywood", weight=9]; 1130 -> 833[label="",style="solid", color="burlywood", weight=3]; 825[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS Zero vuz72)",fontsize=16,color="burlywood",shape="box"];1131[label="vuz72/Succ vuz720",fontsize=10,color="white",style="solid",shape="box"];825 -> 1131[label="",style="solid", color="burlywood", weight=9]; 1131 -> 834[label="",style="solid", color="burlywood", weight=3]; 1132[label="vuz72/Zero",fontsize=10,color="white",style="solid",shape="box"];825 -> 1132[label="",style="solid", color="burlywood", weight=9]; 1132 -> 835[label="",style="solid", color="burlywood", weight=3]; 473 -> 377[label="",style="dashed", color="red", weight=0]; 473[label="primDivNatS (primMinusNatS (Succ vuz22000) Zero) (Succ Zero)",fontsize=16,color="magenta"];473 -> 490[label="",style="dashed", color="magenta", weight=3]; 473 -> 491[label="",style="dashed", color="magenta", weight=3]; 474 -> 377[label="",style="dashed", color="red", weight=0]; 474[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];474 -> 492[label="",style="dashed", color="magenta", weight=3]; 474 -> 493[label="",style="dashed", color="magenta", weight=3]; 336 -> 374[label="",style="dashed", color="red", weight=0]; 336[label="gcd0Gcd'0 (abs vuz24) (abs vuz23)",fontsize=16,color="magenta"];336 -> 375[label="",style="dashed", color="magenta", weight=3]; 336 -> 376[label="",style="dashed", color="magenta", weight=3]; 337[label="Neg vuz220",fontsize=16,color="green",shape="box"];338 -> 266[label="",style="dashed", color="red", weight=0]; 338[label="abs vuz24",fontsize=16,color="magenta"];338 -> 393[label="",style="dashed", color="magenta", weight=3]; 339[label="Neg vuz220",fontsize=16,color="green",shape="box"];475[label="absReal1 vuz20 (vuz20 >= fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];475 -> 494[label="",style="solid", color="black", weight=3]; 476[label="vuz21",fontsize=16,color="green",shape="box"];477[label="gcd0Gcd' vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="black",shape="box"];477 -> 495[label="",style="solid", color="black", weight=3]; 396[label="absReal1 vuz23 (compare vuz23 (fromInt (Pos Zero)) /= LT)",fontsize=16,color="black",shape="box"];396 -> 441[label="",style="solid", color="black", weight=3]; 484 -> 374[label="",style="dashed", color="red", weight=0]; 484[label="gcd0Gcd'0 vuz47 vuz46",fontsize=16,color="magenta"];484 -> 508[label="",style="dashed", color="magenta", weight=3]; 484 -> 509[label="",style="dashed", color="magenta", weight=3]; 485[label="vuz47",fontsize=16,color="green",shape="box"];832[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS (Succ vuz710) (Succ vuz720))",fontsize=16,color="black",shape="box"];832 -> 844[label="",style="solid", color="black", weight=3]; 833[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS (Succ vuz710) Zero)",fontsize=16,color="black",shape="box"];833 -> 845[label="",style="solid", color="black", weight=3]; 834[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS Zero (Succ vuz720))",fontsize=16,color="black",shape="box"];834 -> 846[label="",style="solid", color="black", weight=3]; 835[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];835 -> 847[label="",style="solid", color="black", weight=3]; 490[label="primMinusNatS (Succ vuz22000) Zero",fontsize=16,color="black",shape="triangle"];490 -> 515[label="",style="solid", color="black", weight=3]; 491[label="Zero",fontsize=16,color="green",shape="box"];492[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="triangle"];492 -> 516[label="",style="solid", color="black", weight=3]; 493[label="Zero",fontsize=16,color="green",shape="box"];375 -> 266[label="",style="dashed", color="red", weight=0]; 375[label="abs vuz24",fontsize=16,color="magenta"];375 -> 394[label="",style="dashed", color="magenta", weight=3]; 376 -> 266[label="",style="dashed", color="red", weight=0]; 376[label="abs vuz23",fontsize=16,color="magenta"];374[label="gcd0Gcd'0 vuz44 vuz43",fontsize=16,color="black",shape="triangle"];374 -> 395[label="",style="solid", color="black", weight=3]; 393[label="vuz24",fontsize=16,color="green",shape="box"];494[label="absReal1 vuz20 (compare vuz20 (fromInt (Pos Zero)) /= LT)",fontsize=16,color="black",shape="box"];494 -> 517[label="",style="solid", color="black", weight=3]; 495[label="gcd0Gcd'2 vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="black",shape="box"];495 -> 518[label="",style="solid", color="black", weight=3]; 441[label="absReal1 vuz23 (not (compare vuz23 (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];441 -> 451[label="",style="solid", color="black", weight=3]; 508[label="vuz47",fontsize=16,color="green",shape="box"];509[label="vuz46",fontsize=16,color="green",shape="box"];844 -> 791[label="",style="dashed", color="red", weight=0]; 844[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS vuz710 vuz720)",fontsize=16,color="magenta"];844 -> 854[label="",style="dashed", color="magenta", weight=3]; 844 -> 855[label="",style="dashed", color="magenta", weight=3]; 845[label="primDivNatS0 (Succ vuz69) (Succ vuz70) True",fontsize=16,color="black",shape="triangle"];845 -> 856[label="",style="solid", color="black", weight=3]; 846[label="primDivNatS0 (Succ vuz69) (Succ vuz70) False",fontsize=16,color="black",shape="box"];846 -> 857[label="",style="solid", color="black", weight=3]; 847 -> 845[label="",style="dashed", color="red", weight=0]; 847[label="primDivNatS0 (Succ vuz69) (Succ vuz70) True",fontsize=16,color="magenta"];515[label="Succ vuz22000",fontsize=16,color="green",shape="box"];516[label="Zero",fontsize=16,color="green",shape="box"];394[label="vuz24",fontsize=16,color="green",shape="box"];395 -> 409[label="",style="dashed", color="red", weight=0]; 395[label="gcd0Gcd' vuz43 (vuz44 `rem` vuz43)",fontsize=16,color="magenta"];395 -> 412[label="",style="dashed", color="magenta", weight=3]; 395 -> 413[label="",style="dashed", color="magenta", weight=3]; 517[label="absReal1 vuz20 (not (compare vuz20 (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];1133[label="vuz20/Integer vuz200",fontsize=10,color="white",style="solid",shape="box"];517 -> 1133[label="",style="solid", color="burlywood", weight=9]; 1133 -> 537[label="",style="solid", color="burlywood", weight=3]; 518 -> 538[label="",style="dashed", color="red", weight=0]; 518[label="gcd0Gcd'1 (vuz51 `rem` vuz50 == fromInt (Pos Zero)) vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="magenta"];518 -> 539[label="",style="dashed", color="magenta", weight=3]; 451[label="absReal1 vuz23 (not (primCmpInt vuz23 (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];1134[label="vuz23/Pos vuz230",fontsize=10,color="white",style="solid",shape="box"];451 -> 1134[label="",style="solid", color="burlywood", weight=9]; 1134 -> 478[label="",style="solid", color="burlywood", weight=3]; 1135[label="vuz23/Neg vuz230",fontsize=10,color="white",style="solid",shape="box"];451 -> 1135[label="",style="solid", color="burlywood", weight=9]; 1135 -> 479[label="",style="solid", color="burlywood", weight=3]; 854[label="vuz710",fontsize=16,color="green",shape="box"];855[label="vuz720",fontsize=16,color="green",shape="box"];856[label="Succ (primDivNatS (primMinusNatS (Succ vuz69) (Succ vuz70)) (Succ (Succ vuz70)))",fontsize=16,color="green",shape="box"];856 -> 864[label="",style="dashed", color="green", weight=3]; 857[label="Zero",fontsize=16,color="green",shape="box"];412[label="vuz44 `rem` vuz43",fontsize=16,color="black",shape="box"];412 -> 442[label="",style="solid", color="black", weight=3]; 413[label="vuz43",fontsize=16,color="green",shape="box"];537[label="absReal1 (Integer vuz200) (not (compare (Integer vuz200) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];537 -> 548[label="",style="solid", color="black", weight=3]; 539 -> 76[label="",style="dashed", color="red", weight=0]; 539[label="vuz51 `rem` vuz50 == fromInt (Pos Zero)",fontsize=16,color="magenta"];539 -> 549[label="",style="dashed", color="magenta", weight=3]; 538[label="gcd0Gcd'1 vuz52 vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="burlywood",shape="triangle"];1136[label="vuz52/False",fontsize=10,color="white",style="solid",shape="box"];538 -> 1136[label="",style="solid", color="burlywood", weight=9]; 1136 -> 550[label="",style="solid", color="burlywood", weight=3]; 1137[label="vuz52/True",fontsize=10,color="white",style="solid",shape="box"];538 -> 1137[label="",style="solid", color="burlywood", weight=9]; 1137 -> 551[label="",style="solid", color="burlywood", weight=3]; 478[label="absReal1 (Pos vuz230) (not (primCmpInt (Pos vuz230) (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];1138[label="vuz230/Succ vuz2300",fontsize=10,color="white",style="solid",shape="box"];478 -> 1138[label="",style="solid", color="burlywood", weight=9]; 1138 -> 496[label="",style="solid", color="burlywood", weight=3]; 1139[label="vuz230/Zero",fontsize=10,color="white",style="solid",shape="box"];478 -> 1139[label="",style="solid", color="burlywood", weight=9]; 1139 -> 497[label="",style="solid", color="burlywood", weight=3]; 479[label="absReal1 (Neg vuz230) (not (primCmpInt (Neg vuz230) (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];1140[label="vuz230/Succ vuz2300",fontsize=10,color="white",style="solid",shape="box"];479 -> 1140[label="",style="solid", color="burlywood", weight=9]; 1140 -> 498[label="",style="solid", color="burlywood", weight=3]; 1141[label="vuz230/Zero",fontsize=10,color="white",style="solid",shape="box"];479 -> 1141[label="",style="solid", color="burlywood", weight=9]; 1141 -> 499[label="",style="solid", color="burlywood", weight=3]; 864 -> 377[label="",style="dashed", color="red", weight=0]; 864[label="primDivNatS (primMinusNatS (Succ vuz69) (Succ vuz70)) (Succ (Succ vuz70))",fontsize=16,color="magenta"];864 -> 873[label="",style="dashed", color="magenta", weight=3]; 864 -> 874[label="",style="dashed", color="magenta", weight=3]; 442[label="primRemInt vuz44 vuz43",fontsize=16,color="burlywood",shape="triangle"];1142[label="vuz44/Pos vuz440",fontsize=10,color="white",style="solid",shape="box"];442 -> 1142[label="",style="solid", color="burlywood", weight=9]; 1142 -> 452[label="",style="solid", color="burlywood", weight=3]; 1143[label="vuz44/Neg vuz440",fontsize=10,color="white",style="solid",shape="box"];442 -> 1143[label="",style="solid", color="burlywood", weight=9]; 1143 -> 453[label="",style="solid", color="burlywood", weight=3]; 548[label="absReal1 (Integer vuz200) (not (compare (Integer vuz200) (Integer (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];548 -> 567[label="",style="solid", color="black", weight=3]; 549[label="vuz51 `rem` vuz50",fontsize=16,color="burlywood",shape="triangle"];1144[label="vuz51/Integer vuz510",fontsize=10,color="white",style="solid",shape="box"];549 -> 1144[label="",style="solid", color="burlywood", weight=9]; 1144 -> 568[label="",style="solid", color="burlywood", weight=3]; 550[label="gcd0Gcd'1 False vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="black",shape="box"];550 -> 569[label="",style="solid", color="black", weight=3]; 551[label="gcd0Gcd'1 True vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="black",shape="box"];551 -> 570[label="",style="solid", color="black", weight=3]; 496[label="absReal1 (Pos (Succ vuz2300)) (not (primCmpInt (Pos (Succ vuz2300)) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];496 -> 519[label="",style="solid", color="black", weight=3]; 497[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];497 -> 520[label="",style="solid", color="black", weight=3]; 498[label="absReal1 (Neg (Succ vuz2300)) (not (primCmpInt (Neg (Succ vuz2300)) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];498 -> 521[label="",style="solid", color="black", weight=3]; 499[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];499 -> 522[label="",style="solid", color="black", weight=3]; 873[label="primMinusNatS (Succ vuz69) (Succ vuz70)",fontsize=16,color="black",shape="triangle"];873 -> 881[label="",style="solid", color="black", weight=3]; 874[label="Succ vuz70",fontsize=16,color="green",shape="box"];452[label="primRemInt (Pos vuz440) vuz43",fontsize=16,color="burlywood",shape="box"];1145[label="vuz43/Pos vuz430",fontsize=10,color="white",style="solid",shape="box"];452 -> 1145[label="",style="solid", color="burlywood", weight=9]; 1145 -> 480[label="",style="solid", color="burlywood", weight=3]; 1146[label="vuz43/Neg vuz430",fontsize=10,color="white",style="solid",shape="box"];452 -> 1146[label="",style="solid", color="burlywood", weight=9]; 1146 -> 481[label="",style="solid", color="burlywood", weight=3]; 453[label="primRemInt (Neg vuz440) vuz43",fontsize=16,color="burlywood",shape="box"];1147[label="vuz43/Pos vuz430",fontsize=10,color="white",style="solid",shape="box"];453 -> 1147[label="",style="solid", color="burlywood", weight=9]; 1147 -> 482[label="",style="solid", color="burlywood", weight=3]; 1148[label="vuz43/Neg vuz430",fontsize=10,color="white",style="solid",shape="box"];453 -> 1148[label="",style="solid", color="burlywood", weight=9]; 1148 -> 483[label="",style="solid", color="burlywood", weight=3]; 567[label="absReal1 (Integer vuz200) (not (primCmpInt vuz200 (Pos Zero) == LT))",fontsize=16,color="burlywood",shape="box"];1149[label="vuz200/Pos vuz2000",fontsize=10,color="white",style="solid",shape="box"];567 -> 1149[label="",style="solid", color="burlywood", weight=9]; 1149 -> 588[label="",style="solid", color="burlywood", weight=3]; 1150[label="vuz200/Neg vuz2000",fontsize=10,color="white",style="solid",shape="box"];567 -> 1150[label="",style="solid", color="burlywood", weight=9]; 1150 -> 589[label="",style="solid", color="burlywood", weight=3]; 568[label="Integer vuz510 `rem` vuz50",fontsize=16,color="burlywood",shape="box"];1151[label="vuz50/Integer vuz500",fontsize=10,color="white",style="solid",shape="box"];568 -> 1151[label="",style="solid", color="burlywood", weight=9]; 1151 -> 590[label="",style="solid", color="burlywood", weight=3]; 569 -> 462[label="",style="dashed", color="red", weight=0]; 569[label="gcd0Gcd'0 vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="magenta"];569 -> 591[label="",style="dashed", color="magenta", weight=3]; 569 -> 592[label="",style="dashed", color="magenta", weight=3]; 570[label="vuz50",fontsize=16,color="green",shape="box"];519[label="absReal1 (Pos (Succ vuz2300)) (not (primCmpInt (Pos (Succ vuz2300)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];519 -> 552[label="",style="solid", color="black", weight=3]; 520[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];520 -> 553[label="",style="solid", color="black", weight=3]; 521[label="absReal1 (Neg (Succ vuz2300)) (not (primCmpInt (Neg (Succ vuz2300)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];521 -> 554[label="",style="solid", color="black", weight=3]; 522[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];522 -> 555[label="",style="solid", color="black", weight=3]; 881[label="primMinusNatS vuz69 vuz70",fontsize=16,color="burlywood",shape="triangle"];1152[label="vuz69/Succ vuz690",fontsize=10,color="white",style="solid",shape="box"];881 -> 1152[label="",style="solid", color="burlywood", weight=9]; 1152 -> 891[label="",style="solid", color="burlywood", weight=3]; 1153[label="vuz69/Zero",fontsize=10,color="white",style="solid",shape="box"];881 -> 1153[label="",style="solid", color="burlywood", weight=9]; 1153 -> 892[label="",style="solid", color="burlywood", weight=3]; 480[label="primRemInt (Pos vuz440) (Pos vuz430)",fontsize=16,color="burlywood",shape="box"];1154[label="vuz430/Succ vuz4300",fontsize=10,color="white",style="solid",shape="box"];480 -> 1154[label="",style="solid", color="burlywood", weight=9]; 1154 -> 500[label="",style="solid", color="burlywood", weight=3]; 1155[label="vuz430/Zero",fontsize=10,color="white",style="solid",shape="box"];480 -> 1155[label="",style="solid", color="burlywood", weight=9]; 1155 -> 501[label="",style="solid", color="burlywood", weight=3]; 481[label="primRemInt (Pos vuz440) (Neg vuz430)",fontsize=16,color="burlywood",shape="box"];1156[label="vuz430/Succ vuz4300",fontsize=10,color="white",style="solid",shape="box"];481 -> 1156[label="",style="solid", color="burlywood", weight=9]; 1156 -> 502[label="",style="solid", color="burlywood", weight=3]; 1157[label="vuz430/Zero",fontsize=10,color="white",style="solid",shape="box"];481 -> 1157[label="",style="solid", color="burlywood", weight=9]; 1157 -> 503[label="",style="solid", color="burlywood", weight=3]; 482[label="primRemInt (Neg vuz440) (Pos vuz430)",fontsize=16,color="burlywood",shape="box"];1158[label="vuz430/Succ vuz4300",fontsize=10,color="white",style="solid",shape="box"];482 -> 1158[label="",style="solid", color="burlywood", weight=9]; 1158 -> 504[label="",style="solid", color="burlywood", weight=3]; 1159[label="vuz430/Zero",fontsize=10,color="white",style="solid",shape="box"];482 -> 1159[label="",style="solid", color="burlywood", weight=9]; 1159 -> 505[label="",style="solid", color="burlywood", weight=3]; 483[label="primRemInt (Neg vuz440) (Neg vuz430)",fontsize=16,color="burlywood",shape="box"];1160[label="vuz430/Succ vuz4300",fontsize=10,color="white",style="solid",shape="box"];483 -> 1160[label="",style="solid", color="burlywood", weight=9]; 1160 -> 506[label="",style="solid", color="burlywood", weight=3]; 1161[label="vuz430/Zero",fontsize=10,color="white",style="solid",shape="box"];483 -> 1161[label="",style="solid", color="burlywood", weight=9]; 1161 -> 507[label="",style="solid", color="burlywood", weight=3]; 588[label="absReal1 (Integer (Pos vuz2000)) (not (primCmpInt (Pos vuz2000) (Pos Zero) == LT))",fontsize=16,color="burlywood",shape="box"];1162[label="vuz2000/Succ vuz20000",fontsize=10,color="white",style="solid",shape="box"];588 -> 1162[label="",style="solid", color="burlywood", weight=9]; 1162 -> 607[label="",style="solid", color="burlywood", weight=3]; 1163[label="vuz2000/Zero",fontsize=10,color="white",style="solid",shape="box"];588 -> 1163[label="",style="solid", color="burlywood", weight=9]; 1163 -> 608[label="",style="solid", color="burlywood", weight=3]; 589[label="absReal1 (Integer (Neg vuz2000)) (not (primCmpInt (Neg vuz2000) (Pos Zero) == LT))",fontsize=16,color="burlywood",shape="box"];1164[label="vuz2000/Succ vuz20000",fontsize=10,color="white",style="solid",shape="box"];589 -> 1164[label="",style="solid", color="burlywood", weight=9]; 1164 -> 609[label="",style="solid", color="burlywood", weight=3]; 1165[label="vuz2000/Zero",fontsize=10,color="white",style="solid",shape="box"];589 -> 1165[label="",style="solid", color="burlywood", weight=9]; 1165 -> 610[label="",style="solid", color="burlywood", weight=3]; 590[label="Integer vuz510 `rem` Integer vuz500",fontsize=16,color="black",shape="box"];590 -> 611[label="",style="solid", color="black", weight=3]; 591 -> 549[label="",style="dashed", color="red", weight=0]; 591[label="vuz51 `rem` vuz50",fontsize=16,color="magenta"];592[label="vuz50",fontsize=16,color="green",shape="box"];552[label="absReal1 (Pos (Succ vuz2300)) (not (primCmpNat (Succ vuz2300) Zero == LT))",fontsize=16,color="black",shape="box"];552 -> 571[label="",style="solid", color="black", weight=3]; 553[label="absReal1 (Pos Zero) (not (EQ == LT))",fontsize=16,color="black",shape="box"];553 -> 572[label="",style="solid", color="black", weight=3]; 554[label="absReal1 (Neg (Succ vuz2300)) (not (LT == LT))",fontsize=16,color="black",shape="box"];554 -> 573[label="",style="solid", color="black", weight=3]; 555[label="absReal1 (Neg Zero) (not (EQ == LT))",fontsize=16,color="black",shape="box"];555 -> 574[label="",style="solid", color="black", weight=3]; 891[label="primMinusNatS (Succ vuz690) vuz70",fontsize=16,color="burlywood",shape="box"];1166[label="vuz70/Succ vuz700",fontsize=10,color="white",style="solid",shape="box"];891 -> 1166[label="",style="solid", color="burlywood", weight=9]; 1166 -> 901[label="",style="solid", color="burlywood", weight=3]; 1167[label="vuz70/Zero",fontsize=10,color="white",style="solid",shape="box"];891 -> 1167[label="",style="solid", color="burlywood", weight=9]; 1167 -> 902[label="",style="solid", color="burlywood", weight=3]; 892[label="primMinusNatS Zero vuz70",fontsize=16,color="burlywood",shape="box"];1168[label="vuz70/Succ vuz700",fontsize=10,color="white",style="solid",shape="box"];892 -> 1168[label="",style="solid", color="burlywood", weight=9]; 1168 -> 903[label="",style="solid", color="burlywood", weight=3]; 1169[label="vuz70/Zero",fontsize=10,color="white",style="solid",shape="box"];892 -> 1169[label="",style="solid", color="burlywood", weight=9]; 1169 -> 904[label="",style="solid", color="burlywood", weight=3]; 500[label="primRemInt (Pos vuz440) (Pos (Succ vuz4300))",fontsize=16,color="black",shape="box"];500 -> 523[label="",style="solid", color="black", weight=3]; 501[label="primRemInt (Pos vuz440) (Pos Zero)",fontsize=16,color="black",shape="box"];501 -> 524[label="",style="solid", color="black", weight=3]; 502[label="primRemInt (Pos vuz440) (Neg (Succ vuz4300))",fontsize=16,color="black",shape="box"];502 -> 525[label="",style="solid", color="black", weight=3]; 503[label="primRemInt (Pos vuz440) (Neg Zero)",fontsize=16,color="black",shape="box"];503 -> 526[label="",style="solid", color="black", weight=3]; 504[label="primRemInt (Neg vuz440) (Pos (Succ vuz4300))",fontsize=16,color="black",shape="box"];504 -> 527[label="",style="solid", color="black", weight=3]; 505[label="primRemInt (Neg vuz440) (Pos Zero)",fontsize=16,color="black",shape="box"];505 -> 528[label="",style="solid", color="black", weight=3]; 506[label="primRemInt (Neg vuz440) (Neg (Succ vuz4300))",fontsize=16,color="black",shape="box"];506 -> 529[label="",style="solid", color="black", weight=3]; 507[label="primRemInt (Neg vuz440) (Neg Zero)",fontsize=16,color="black",shape="box"];507 -> 530[label="",style="solid", color="black", weight=3]; 607[label="absReal1 (Integer (Pos (Succ vuz20000))) (not (primCmpInt (Pos (Succ vuz20000)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];607 -> 625[label="",style="solid", color="black", weight=3]; 608[label="absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];608 -> 626[label="",style="solid", color="black", weight=3]; 609[label="absReal1 (Integer (Neg (Succ vuz20000))) (not (primCmpInt (Neg (Succ vuz20000)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];609 -> 627[label="",style="solid", color="black", weight=3]; 610[label="absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];610 -> 628[label="",style="solid", color="black", weight=3]; 611[label="Integer (primRemInt vuz510 vuz500)",fontsize=16,color="green",shape="box"];611 -> 629[label="",style="dashed", color="green", weight=3]; 571[label="absReal1 (Pos (Succ vuz2300)) (not (GT == LT))",fontsize=16,color="black",shape="box"];571 -> 593[label="",style="solid", color="black", weight=3]; 572[label="absReal1 (Pos Zero) (not False)",fontsize=16,color="black",shape="box"];572 -> 594[label="",style="solid", color="black", weight=3]; 573[label="absReal1 (Neg (Succ vuz2300)) (not True)",fontsize=16,color="black",shape="box"];573 -> 595[label="",style="solid", color="black", weight=3]; 574[label="absReal1 (Neg Zero) (not False)",fontsize=16,color="black",shape="box"];574 -> 596[label="",style="solid", color="black", weight=3]; 901[label="primMinusNatS (Succ vuz690) (Succ vuz700)",fontsize=16,color="black",shape="box"];901 -> 913[label="",style="solid", color="black", weight=3]; 902[label="primMinusNatS (Succ vuz690) Zero",fontsize=16,color="black",shape="box"];902 -> 914[label="",style="solid", color="black", weight=3]; 903[label="primMinusNatS Zero (Succ vuz700)",fontsize=16,color="black",shape="box"];903 -> 915[label="",style="solid", color="black", weight=3]; 904[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];904 -> 916[label="",style="solid", color="black", weight=3]; 523[label="Pos (primModNatS vuz440 (Succ vuz4300))",fontsize=16,color="green",shape="box"];523 -> 556[label="",style="dashed", color="green", weight=3]; 524 -> 356[label="",style="dashed", color="red", weight=0]; 524[label="error []",fontsize=16,color="magenta"];525[label="Pos (primModNatS vuz440 (Succ vuz4300))",fontsize=16,color="green",shape="box"];525 -> 557[label="",style="dashed", color="green", weight=3]; 526 -> 356[label="",style="dashed", color="red", weight=0]; 526[label="error []",fontsize=16,color="magenta"];527[label="Neg (primModNatS vuz440 (Succ vuz4300))",fontsize=16,color="green",shape="box"];527 -> 558[label="",style="dashed", color="green", weight=3]; 528 -> 356[label="",style="dashed", color="red", weight=0]; 528[label="error []",fontsize=16,color="magenta"];529[label="Neg (primModNatS vuz440 (Succ vuz4300))",fontsize=16,color="green",shape="box"];529 -> 559[label="",style="dashed", color="green", weight=3]; 530 -> 356[label="",style="dashed", color="red", weight=0]; 530[label="error []",fontsize=16,color="magenta"];625[label="absReal1 (Integer (Pos (Succ vuz20000))) (not (primCmpNat (Succ vuz20000) Zero == LT))",fontsize=16,color="black",shape="box"];625 -> 643[label="",style="solid", color="black", weight=3]; 626[label="absReal1 (Integer (Pos Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="box"];626 -> 644[label="",style="solid", color="black", weight=3]; 627[label="absReal1 (Integer (Neg (Succ vuz20000))) (not (LT == LT))",fontsize=16,color="black",shape="box"];627 -> 645[label="",style="solid", color="black", weight=3]; 628[label="absReal1 (Integer (Neg Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="box"];628 -> 646[label="",style="solid", color="black", weight=3]; 629 -> 442[label="",style="dashed", color="red", weight=0]; 629[label="primRemInt vuz510 vuz500",fontsize=16,color="magenta"];629 -> 647[label="",style="dashed", color="magenta", weight=3]; 629 -> 648[label="",style="dashed", color="magenta", weight=3]; 593[label="absReal1 (Pos (Succ vuz2300)) (not False)",fontsize=16,color="black",shape="box"];593 -> 612[label="",style="solid", color="black", weight=3]; 594[label="absReal1 (Pos Zero) True",fontsize=16,color="black",shape="box"];594 -> 613[label="",style="solid", color="black", weight=3]; 595[label="absReal1 (Neg (Succ vuz2300)) False",fontsize=16,color="black",shape="box"];595 -> 614[label="",style="solid", color="black", weight=3]; 596[label="absReal1 (Neg Zero) True",fontsize=16,color="black",shape="box"];596 -> 615[label="",style="solid", color="black", weight=3]; 913 -> 881[label="",style="dashed", color="red", weight=0]; 913[label="primMinusNatS vuz690 vuz700",fontsize=16,color="magenta"];913 -> 921[label="",style="dashed", color="magenta", weight=3]; 913 -> 922[label="",style="dashed", color="magenta", weight=3]; 914[label="Succ vuz690",fontsize=16,color="green",shape="box"];915[label="Zero",fontsize=16,color="green",shape="box"];916[label="Zero",fontsize=16,color="green",shape="box"];556[label="primModNatS vuz440 (Succ vuz4300)",fontsize=16,color="burlywood",shape="triangle"];1170[label="vuz440/Succ vuz4400",fontsize=10,color="white",style="solid",shape="box"];556 -> 1170[label="",style="solid", color="burlywood", weight=9]; 1170 -> 575[label="",style="solid", color="burlywood", weight=3]; 1171[label="vuz440/Zero",fontsize=10,color="white",style="solid",shape="box"];556 -> 1171[label="",style="solid", color="burlywood", weight=9]; 1171 -> 576[label="",style="solid", color="burlywood", weight=3]; 557 -> 556[label="",style="dashed", color="red", weight=0]; 557[label="primModNatS vuz440 (Succ vuz4300)",fontsize=16,color="magenta"];557 -> 577[label="",style="dashed", color="magenta", weight=3]; 558 -> 556[label="",style="dashed", color="red", weight=0]; 558[label="primModNatS vuz440 (Succ vuz4300)",fontsize=16,color="magenta"];558 -> 578[label="",style="dashed", color="magenta", weight=3]; 559 -> 556[label="",style="dashed", color="red", weight=0]; 559[label="primModNatS vuz440 (Succ vuz4300)",fontsize=16,color="magenta"];559 -> 579[label="",style="dashed", color="magenta", weight=3]; 559 -> 580[label="",style="dashed", color="magenta", weight=3]; 643[label="absReal1 (Integer (Pos (Succ vuz20000))) (not (GT == LT))",fontsize=16,color="black",shape="box"];643 -> 662[label="",style="solid", color="black", weight=3]; 644[label="absReal1 (Integer (Pos Zero)) (not False)",fontsize=16,color="black",shape="box"];644 -> 663[label="",style="solid", color="black", weight=3]; 645[label="absReal1 (Integer (Neg (Succ vuz20000))) (not True)",fontsize=16,color="black",shape="box"];645 -> 664[label="",style="solid", color="black", weight=3]; 646[label="absReal1 (Integer (Neg Zero)) (not False)",fontsize=16,color="black",shape="box"];646 -> 665[label="",style="solid", color="black", weight=3]; 647[label="vuz510",fontsize=16,color="green",shape="box"];648[label="vuz500",fontsize=16,color="green",shape="box"];612[label="absReal1 (Pos (Succ vuz2300)) True",fontsize=16,color="black",shape="box"];612 -> 630[label="",style="solid", color="black", weight=3]; 613[label="Pos Zero",fontsize=16,color="green",shape="box"];614[label="absReal0 (Neg (Succ vuz2300)) otherwise",fontsize=16,color="black",shape="box"];614 -> 631[label="",style="solid", color="black", weight=3]; 615[label="Neg Zero",fontsize=16,color="green",shape="box"];921[label="vuz700",fontsize=16,color="green",shape="box"];922[label="vuz690",fontsize=16,color="green",shape="box"];575[label="primModNatS (Succ vuz4400) (Succ vuz4300)",fontsize=16,color="black",shape="box"];575 -> 597[label="",style="solid", color="black", weight=3]; 576[label="primModNatS Zero (Succ vuz4300)",fontsize=16,color="black",shape="box"];576 -> 598[label="",style="solid", color="black", weight=3]; 577[label="vuz4300",fontsize=16,color="green",shape="box"];578[label="vuz440",fontsize=16,color="green",shape="box"];579[label="vuz4300",fontsize=16,color="green",shape="box"];580[label="vuz440",fontsize=16,color="green",shape="box"];662[label="absReal1 (Integer (Pos (Succ vuz20000))) (not False)",fontsize=16,color="black",shape="box"];662 -> 679[label="",style="solid", color="black", weight=3]; 663[label="absReal1 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];663 -> 680[label="",style="solid", color="black", weight=3]; 664[label="absReal1 (Integer (Neg (Succ vuz20000))) False",fontsize=16,color="black",shape="box"];664 -> 681[label="",style="solid", color="black", weight=3]; 665[label="absReal1 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];665 -> 682[label="",style="solid", color="black", weight=3]; 630[label="Pos (Succ vuz2300)",fontsize=16,color="green",shape="box"];631[label="absReal0 (Neg (Succ vuz2300)) True",fontsize=16,color="black",shape="box"];631 -> 649[label="",style="solid", color="black", weight=3]; 597[label="primModNatS0 vuz4400 vuz4300 (primGEqNatS vuz4400 vuz4300)",fontsize=16,color="burlywood",shape="box"];1172[label="vuz4400/Succ vuz44000",fontsize=10,color="white",style="solid",shape="box"];597 -> 1172[label="",style="solid", color="burlywood", weight=9]; 1172 -> 616[label="",style="solid", color="burlywood", weight=3]; 1173[label="vuz4400/Zero",fontsize=10,color="white",style="solid",shape="box"];597 -> 1173[label="",style="solid", color="burlywood", weight=9]; 1173 -> 617[label="",style="solid", color="burlywood", weight=3]; 598[label="Zero",fontsize=16,color="green",shape="box"];679[label="absReal1 (Integer (Pos (Succ vuz20000))) True",fontsize=16,color="black",shape="box"];679 -> 699[label="",style="solid", color="black", weight=3]; 680[label="Integer (Pos Zero)",fontsize=16,color="green",shape="box"];681[label="absReal0 (Integer (Neg (Succ vuz20000))) otherwise",fontsize=16,color="black",shape="box"];681 -> 700[label="",style="solid", color="black", weight=3]; 682[label="Integer (Neg Zero)",fontsize=16,color="green",shape="box"];649[label="`negate` Neg (Succ vuz2300)",fontsize=16,color="black",shape="box"];649 -> 666[label="",style="solid", color="black", weight=3]; 616[label="primModNatS0 (Succ vuz44000) vuz4300 (primGEqNatS (Succ vuz44000) vuz4300)",fontsize=16,color="burlywood",shape="box"];1174[label="vuz4300/Succ vuz43000",fontsize=10,color="white",style="solid",shape="box"];616 -> 1174[label="",style="solid", color="burlywood", weight=9]; 1174 -> 632[label="",style="solid", color="burlywood", weight=3]; 1175[label="vuz4300/Zero",fontsize=10,color="white",style="solid",shape="box"];616 -> 1175[label="",style="solid", color="burlywood", weight=9]; 1175 -> 633[label="",style="solid", color="burlywood", weight=3]; 617[label="primModNatS0 Zero vuz4300 (primGEqNatS Zero vuz4300)",fontsize=16,color="burlywood",shape="box"];1176[label="vuz4300/Succ vuz43000",fontsize=10,color="white",style="solid",shape="box"];617 -> 1176[label="",style="solid", color="burlywood", weight=9]; 1176 -> 634[label="",style="solid", color="burlywood", weight=3]; 1177[label="vuz4300/Zero",fontsize=10,color="white",style="solid",shape="box"];617 -> 1177[label="",style="solid", color="burlywood", weight=9]; 1177 -> 635[label="",style="solid", color="burlywood", weight=3]; 699[label="Integer (Pos (Succ vuz20000))",fontsize=16,color="green",shape="box"];700[label="absReal0 (Integer (Neg (Succ vuz20000))) True",fontsize=16,color="black",shape="box"];700 -> 714[label="",style="solid", color="black", weight=3]; 666[label="primNegInt (Neg (Succ vuz2300))",fontsize=16,color="black",shape="triangle"];666 -> 683[label="",style="solid", color="black", weight=3]; 632[label="primModNatS0 (Succ vuz44000) (Succ vuz43000) (primGEqNatS (Succ vuz44000) (Succ vuz43000))",fontsize=16,color="black",shape="box"];632 -> 650[label="",style="solid", color="black", weight=3]; 633[label="primModNatS0 (Succ vuz44000) Zero (primGEqNatS (Succ vuz44000) Zero)",fontsize=16,color="black",shape="box"];633 -> 651[label="",style="solid", color="black", weight=3]; 634[label="primModNatS0 Zero (Succ vuz43000) (primGEqNatS Zero (Succ vuz43000))",fontsize=16,color="black",shape="box"];634 -> 652[label="",style="solid", color="black", weight=3]; 635[label="primModNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];635 -> 653[label="",style="solid", color="black", weight=3]; 714[label="`negate` Integer (Neg (Succ vuz20000))",fontsize=16,color="black",shape="box"];714 -> 734[label="",style="solid", color="black", weight=3]; 683[label="Pos (Succ vuz2300)",fontsize=16,color="green",shape="box"];650 -> 972[label="",style="dashed", color="red", weight=0]; 650[label="primModNatS0 (Succ vuz44000) (Succ vuz43000) (primGEqNatS vuz44000 vuz43000)",fontsize=16,color="magenta"];650 -> 973[label="",style="dashed", color="magenta", weight=3]; 650 -> 974[label="",style="dashed", color="magenta", weight=3]; 650 -> 975[label="",style="dashed", color="magenta", weight=3]; 650 -> 976[label="",style="dashed", color="magenta", weight=3]; 651[label="primModNatS0 (Succ vuz44000) Zero True",fontsize=16,color="black",shape="box"];651 -> 669[label="",style="solid", color="black", weight=3]; 652[label="primModNatS0 Zero (Succ vuz43000) False",fontsize=16,color="black",shape="box"];652 -> 670[label="",style="solid", color="black", weight=3]; 653[label="primModNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];653 -> 671[label="",style="solid", color="black", weight=3]; 734[label="Integer (primNegInt (Neg (Succ vuz20000)))",fontsize=16,color="green",shape="box"];734 -> 764[label="",style="dashed", color="green", weight=3]; 973[label="vuz44000",fontsize=16,color="green",shape="box"];974[label="vuz43000",fontsize=16,color="green",shape="box"];975[label="vuz44000",fontsize=16,color="green",shape="box"];976[label="vuz43000",fontsize=16,color="green",shape="box"];972[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS vuz91 vuz92)",fontsize=16,color="burlywood",shape="triangle"];1178[label="vuz91/Succ vuz910",fontsize=10,color="white",style="solid",shape="box"];972 -> 1178[label="",style="solid", color="burlywood", weight=9]; 1178 -> 1005[label="",style="solid", color="burlywood", weight=3]; 1179[label="vuz91/Zero",fontsize=10,color="white",style="solid",shape="box"];972 -> 1179[label="",style="solid", color="burlywood", weight=9]; 1179 -> 1006[label="",style="solid", color="burlywood", weight=3]; 669 -> 556[label="",style="dashed", color="red", weight=0]; 669[label="primModNatS (primMinusNatS (Succ vuz44000) Zero) (Succ Zero)",fontsize=16,color="magenta"];669 -> 688[label="",style="dashed", color="magenta", weight=3]; 669 -> 689[label="",style="dashed", color="magenta", weight=3]; 670[label="Succ Zero",fontsize=16,color="green",shape="box"];671 -> 556[label="",style="dashed", color="red", weight=0]; 671[label="primModNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];671 -> 690[label="",style="dashed", color="magenta", weight=3]; 671 -> 691[label="",style="dashed", color="magenta", weight=3]; 764 -> 666[label="",style="dashed", color="red", weight=0]; 764[label="primNegInt (Neg (Succ vuz20000))",fontsize=16,color="magenta"];764 -> 778[label="",style="dashed", color="magenta", weight=3]; 1005[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS (Succ vuz910) vuz92)",fontsize=16,color="burlywood",shape="box"];1180[label="vuz92/Succ vuz920",fontsize=10,color="white",style="solid",shape="box"];1005 -> 1180[label="",style="solid", color="burlywood", weight=9]; 1180 -> 1007[label="",style="solid", color="burlywood", weight=3]; 1181[label="vuz92/Zero",fontsize=10,color="white",style="solid",shape="box"];1005 -> 1181[label="",style="solid", color="burlywood", weight=9]; 1181 -> 1008[label="",style="solid", color="burlywood", weight=3]; 1006[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS Zero vuz92)",fontsize=16,color="burlywood",shape="box"];1182[label="vuz92/Succ vuz920",fontsize=10,color="white",style="solid",shape="box"];1006 -> 1182[label="",style="solid", color="burlywood", weight=9]; 1182 -> 1009[label="",style="solid", color="burlywood", weight=3]; 1183[label="vuz92/Zero",fontsize=10,color="white",style="solid",shape="box"];1006 -> 1183[label="",style="solid", color="burlywood", weight=9]; 1183 -> 1010[label="",style="solid", color="burlywood", weight=3]; 688[label="Zero",fontsize=16,color="green",shape="box"];689 -> 490[label="",style="dashed", color="red", weight=0]; 689[label="primMinusNatS (Succ vuz44000) Zero",fontsize=16,color="magenta"];689 -> 705[label="",style="dashed", color="magenta", weight=3]; 690[label="Zero",fontsize=16,color="green",shape="box"];691 -> 492[label="",style="dashed", color="red", weight=0]; 691[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];778[label="vuz20000",fontsize=16,color="green",shape="box"];1007[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS (Succ vuz910) (Succ vuz920))",fontsize=16,color="black",shape="box"];1007 -> 1011[label="",style="solid", color="black", weight=3]; 1008[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS (Succ vuz910) Zero)",fontsize=16,color="black",shape="box"];1008 -> 1012[label="",style="solid", color="black", weight=3]; 1009[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS Zero (Succ vuz920))",fontsize=16,color="black",shape="box"];1009 -> 1013[label="",style="solid", color="black", weight=3]; 1010[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];1010 -> 1014[label="",style="solid", color="black", weight=3]; 705[label="vuz44000",fontsize=16,color="green",shape="box"];1011 -> 972[label="",style="dashed", color="red", weight=0]; 1011[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS vuz910 vuz920)",fontsize=16,color="magenta"];1011 -> 1015[label="",style="dashed", color="magenta", weight=3]; 1011 -> 1016[label="",style="dashed", color="magenta", weight=3]; 1012[label="primModNatS0 (Succ vuz89) (Succ vuz90) True",fontsize=16,color="black",shape="triangle"];1012 -> 1017[label="",style="solid", color="black", weight=3]; 1013[label="primModNatS0 (Succ vuz89) (Succ vuz90) False",fontsize=16,color="black",shape="box"];1013 -> 1018[label="",style="solid", color="black", weight=3]; 1014 -> 1012[label="",style="dashed", color="red", weight=0]; 1014[label="primModNatS0 (Succ vuz89) (Succ vuz90) True",fontsize=16,color="magenta"];1015[label="vuz910",fontsize=16,color="green",shape="box"];1016[label="vuz920",fontsize=16,color="green",shape="box"];1017 -> 556[label="",style="dashed", color="red", weight=0]; 1017[label="primModNatS (primMinusNatS (Succ vuz89) (Succ vuz90)) (Succ (Succ vuz90))",fontsize=16,color="magenta"];1017 -> 1019[label="",style="dashed", color="magenta", weight=3]; 1017 -> 1020[label="",style="dashed", color="magenta", weight=3]; 1018[label="Succ (Succ vuz89)",fontsize=16,color="green",shape="box"];1019[label="Succ vuz90",fontsize=16,color="green",shape="box"];1020 -> 881[label="",style="dashed", color="red", weight=0]; 1020[label="primMinusNatS (Succ vuz89) (Succ vuz90)",fontsize=16,color="magenta"];1020 -> 1021[label="",style="dashed", color="magenta", weight=3]; 1020 -> 1022[label="",style="dashed", color="magenta", weight=3]; 1021[label="Succ vuz90",fontsize=16,color="green",shape="box"];1022[label="Succ vuz89",fontsize=16,color="green",shape="box"];} ---------------------------------------- (12) Complex Obligation (AND) ---------------------------------------- (13) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Succ(Succ(vuz44000)), Zero) -> new_primModNatS(new_primMinusNatS0(vuz44000), Zero) new_primModNatS(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS0(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS(Succ(Zero), Zero) -> new_primModNatS(new_primMinusNatS1, Zero) new_primModNatS0(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS0(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS0(vuz89, vuz90, vuz910, vuz920) new_primModNatS0(vuz89, vuz90, Zero, Zero) -> new_primModNatS00(vuz89, vuz90) new_primModNatS00(vuz89, vuz90) -> new_primModNatS(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (14) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (15) Complex Obligation (AND) ---------------------------------------- (16) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS0(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS0(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS0(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS0(vuz89, vuz90, vuz910, vuz920) new_primModNatS0(vuz89, vuz90, Zero, Zero) -> new_primModNatS00(vuz89, vuz90) new_primModNatS00(vuz89, vuz90) -> new_primModNatS(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (17) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_primModNatS(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS0(vuz44000, vuz43000, vuz44000, vuz43000) 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_primMinusNatS2(x_1, x_2)) = x_1 POL(new_primModNatS(x_1, x_2)) = x_1 POL(new_primModNatS0(x_1, x_2, x_3, x_4)) = 1 + x_1 POL(new_primModNatS00(x_1, x_2)) = 1 + x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero ---------------------------------------- (18) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS0(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS0(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS0(vuz89, vuz90, vuz910, vuz920) new_primModNatS0(vuz89, vuz90, Zero, Zero) -> new_primModNatS00(vuz89, vuz90) new_primModNatS00(vuz89, vuz90) -> new_primModNatS(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (19) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. ---------------------------------------- (20) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS0(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS0(vuz89, vuz90, vuz910, vuz920) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (21) 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_primModNatS0(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS0(vuz89, vuz90, vuz910, vuz920) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 ---------------------------------------- (22) YES ---------------------------------------- (23) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS(Succ(Succ(vuz44000)), Zero) -> new_primModNatS(new_primMinusNatS0(vuz44000), Zero) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (24) 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_primModNatS(Succ(Succ(vuz44000)), Zero) -> new_primModNatS(new_primMinusNatS0(vuz44000), Zero) Strictly oriented rules of the TRS R: new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero Used ordering: Polynomial interpretation [POLO]: POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 2 POL(new_primMinusNatS0(x_1)) = 1 + x_1 POL(new_primMinusNatS1) = 2 POL(new_primMinusNatS2(x_1, x_2)) = 1 + 2*x_1 + 2*x_2 POL(new_primModNatS(x_1, x_2)) = x_1 + x_2 ---------------------------------------- (25) Obligation: Q DP problem: P is empty. The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (26) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (27) YES ---------------------------------------- (28) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(vuz51, vuz50) -> new_gcd0Gcd'10(new_esEs0(new_rem(vuz51, vuz50)), vuz50, vuz51) new_gcd0Gcd'10(False, vuz50, vuz51) -> new_gcd0Gcd'00(vuz50, new_rem(vuz51, vuz50)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primModNatS1(Zero, vuz4300) -> Zero new_rem(Integer(vuz510), Integer(vuz500)) -> Integer(new_primRemInt(vuz510, vuz500)) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_error -> error([]) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_esEs0(Integer(vuz160)) -> new_primEqInt(vuz160) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_rem(Integer(x0), Integer(x1)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_esEs0(Integer(x0)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (29) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (30) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(vuz51, vuz50) -> new_gcd0Gcd'10(new_esEs0(new_rem(vuz51, vuz50)), vuz50, vuz51) new_gcd0Gcd'10(False, vuz50, vuz51) -> new_gcd0Gcd'00(vuz50, new_rem(vuz51, vuz50)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primModNatS1(Zero, vuz4300) -> Zero new_rem(Integer(vuz510), Integer(vuz500)) -> Integer(new_primRemInt(vuz510, vuz500)) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_error -> error([]) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_esEs0(Integer(vuz160)) -> new_primEqInt(vuz160) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (31) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'00(vuz51, vuz50) -> new_gcd0Gcd'10(new_esEs0(new_rem(vuz51, vuz50)), vuz50, vuz51) the following chains were created: *We consider the chain new_gcd0Gcd'00(x2, x3) -> new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2), new_gcd0Gcd'10(False, x4, x5) -> new_gcd0Gcd'00(x4, new_rem(x5, x4)) which results in the following constraint: (1) (new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2)=new_gcd0Gcd'10(False, x4, x5) ==> new_gcd0Gcd'00(x2, x3)_>=_new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2)) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (new_rem(x2, x3)=x12 & new_esEs0(x12)=False ==> new_gcd0Gcd'00(x2, x3)_>=_new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2)) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_esEs0(x12)=False which results in the following new constraint: (3) (new_primEqInt(x13)=False & new_rem(x2, x3)=Integer(x13) ==> new_gcd0Gcd'00(x2, x3)_>=_new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2)) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x13)=False which results in the following new constraints: (4) (False=False & new_rem(x2, x3)=Integer(Pos(Succ(x14))) ==> new_gcd0Gcd'00(x2, x3)_>=_new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2)) (5) (False=False & new_rem(x2, x3)=Integer(Neg(Succ(x15))) ==> new_gcd0Gcd'00(x2, x3)_>=_new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2)) We simplified constraint (4) using rules (I), (II) which results in the following new constraint: (6) (new_rem(x2, x3)=Integer(Pos(Succ(x14))) ==> new_gcd0Gcd'00(x2, x3)_>=_new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2)) We simplified constraint (5) using rules (I), (II) which results in the following new constraint: (7) (new_rem(x2, x3)=Integer(Neg(Succ(x15))) ==> new_gcd0Gcd'00(x2, x3)_>=_new_gcd0Gcd'10(new_esEs0(new_rem(x2, x3)), x3, x2)) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_rem(x2, x3)=Integer(Pos(Succ(x14))) which results in the following new constraint: (8) (Integer(new_primRemInt(x17, x16))=Integer(Pos(Succ(x14))) ==> new_gcd0Gcd'00(Integer(x17), Integer(x16))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(x17), Integer(x16))), Integer(x16), Integer(x17))) We simplified constraint (8) using rules (I), (II) which results in the following new constraint: (9) (new_primRemInt(x17, x16)=Pos(Succ(x14)) ==> new_gcd0Gcd'00(Integer(x17), Integer(x16))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(x17), Integer(x16))), Integer(x16), Integer(x17))) We simplified constraint (9) using rule (V) (with possible (I) afterwards) using induction on new_primRemInt(x17, x16)=Pos(Succ(x14)) which results in the following new constraints: (10) (Pos(new_primModNatS1(x19, x18))=Pos(Succ(x14)) ==> new_gcd0Gcd'00(Integer(Pos(x19)), Integer(Neg(Succ(x18))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x19)), Integer(Neg(Succ(x18))))), Integer(Neg(Succ(x18))), Integer(Pos(x19)))) (11) (Pos(new_primModNatS1(x21, x20))=Pos(Succ(x14)) ==> new_gcd0Gcd'00(Integer(Pos(x21)), Integer(Pos(Succ(x20))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x21)), Integer(Pos(Succ(x20))))), Integer(Pos(Succ(x20))), Integer(Pos(x21)))) (12) (new_error=Pos(Succ(x14)) ==> new_gcd0Gcd'00(Integer(Neg(x22)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x22)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Neg(x22)))) (13) (new_error=Pos(Succ(x14)) ==> new_gcd0Gcd'00(Integer(Pos(x25)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x25)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Pos(x25)))) (14) (new_error=Pos(Succ(x14)) ==> new_gcd0Gcd'00(Integer(Pos(x28)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x28)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Pos(x28)))) (15) (new_error=Pos(Succ(x14)) ==> new_gcd0Gcd'00(Integer(Neg(x29)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x29)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Neg(x29)))) We simplified constraint (10) using rules (I), (II), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'00(Integer(Pos(x19)), Integer(Neg(Succ(x18))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x19)), Integer(Neg(Succ(x18))))), Integer(Neg(Succ(x18))), Integer(Pos(x19)))) We simplified constraint (11) using rules (I), (II), (IV) which results in the following new constraint: (17) (new_gcd0Gcd'00(Integer(Pos(x21)), Integer(Pos(Succ(x20))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x21)), Integer(Pos(Succ(x20))))), Integer(Pos(Succ(x20))), Integer(Pos(x21)))) We simplified constraint (12) using rule (IV) which results in the following new constraint: (18) (new_gcd0Gcd'00(Integer(Neg(x22)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x22)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Neg(x22)))) We simplified constraint (13) using rule (IV) which results in the following new constraint: (19) (new_gcd0Gcd'00(Integer(Pos(x25)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x25)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Pos(x25)))) We simplified constraint (14) using rule (IV) which results in the following new constraint: (20) (new_gcd0Gcd'00(Integer(Pos(x28)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x28)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Pos(x28)))) We simplified constraint (15) using rule (IV) which results in the following new constraint: (21) (new_gcd0Gcd'00(Integer(Neg(x29)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x29)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Neg(x29)))) We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_rem(x2, x3)=Integer(Neg(Succ(x15))) which results in the following new constraint: (22) (Integer(new_primRemInt(x31, x30))=Integer(Neg(Succ(x15))) ==> new_gcd0Gcd'00(Integer(x31), Integer(x30))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(x31), Integer(x30))), Integer(x30), Integer(x31))) We simplified constraint (22) using rules (I), (II) which results in the following new constraint: (23) (new_primRemInt(x31, x30)=Neg(Succ(x15)) ==> new_gcd0Gcd'00(Integer(x31), Integer(x30))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(x31), Integer(x30))), Integer(x30), Integer(x31))) We simplified constraint (23) using rule (V) (with possible (I) afterwards) using induction on new_primRemInt(x31, x30)=Neg(Succ(x15)) which results in the following new constraints: (24) (new_error=Neg(Succ(x15)) ==> new_gcd0Gcd'00(Integer(Neg(x36)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x36)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Neg(x36)))) (25) (Neg(new_primModNatS1(x38, x37))=Neg(Succ(x15)) ==> new_gcd0Gcd'00(Integer(Neg(x38)), Integer(Pos(Succ(x37))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x38)), Integer(Pos(Succ(x37))))), Integer(Pos(Succ(x37))), Integer(Neg(x38)))) (26) (new_error=Neg(Succ(x15)) ==> new_gcd0Gcd'00(Integer(Pos(x39)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x39)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Pos(x39)))) (27) (Neg(new_primModNatS1(x41, x40))=Neg(Succ(x15)) ==> new_gcd0Gcd'00(Integer(Neg(x41)), Integer(Neg(Succ(x40))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x41)), Integer(Neg(Succ(x40))))), Integer(Neg(Succ(x40))), Integer(Neg(x41)))) (28) (new_error=Neg(Succ(x15)) ==> new_gcd0Gcd'00(Integer(Pos(x42)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x42)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Pos(x42)))) (29) (new_error=Neg(Succ(x15)) ==> new_gcd0Gcd'00(Integer(Neg(x43)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x43)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Neg(x43)))) We simplified constraint (24) using rule (IV) which results in the following new constraint: (30) (new_gcd0Gcd'00(Integer(Neg(x36)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x36)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Neg(x36)))) We simplified constraint (25) using rules (I), (II), (IV) which results in the following new constraint: (31) (new_gcd0Gcd'00(Integer(Neg(x38)), Integer(Pos(Succ(x37))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x38)), Integer(Pos(Succ(x37))))), Integer(Pos(Succ(x37))), Integer(Neg(x38)))) We simplified constraint (26) using rule (IV) which results in the following new constraint: (32) (new_gcd0Gcd'00(Integer(Pos(x39)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x39)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Pos(x39)))) We simplified constraint (27) using rules (I), (II), (IV) which results in the following new constraint: (33) (new_gcd0Gcd'00(Integer(Neg(x41)), Integer(Neg(Succ(x40))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x41)), Integer(Neg(Succ(x40))))), Integer(Neg(Succ(x40))), Integer(Neg(x41)))) We simplified constraint (28) using rule (IV) which results in the following new constraint: (34) (new_gcd0Gcd'00(Integer(Pos(x42)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x42)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Pos(x42)))) We solved constraint (29) using rule (IV). For Pair new_gcd0Gcd'10(False, vuz50, vuz51) -> new_gcd0Gcd'00(vuz50, new_rem(vuz51, vuz50)) the following chains were created: *We consider the chain new_gcd0Gcd'10(False, x6, x7) -> new_gcd0Gcd'00(x6, new_rem(x7, x6)), new_gcd0Gcd'00(x8, x9) -> new_gcd0Gcd'10(new_esEs0(new_rem(x8, x9)), x9, x8) which results in the following constraint: (1) (new_gcd0Gcd'00(x6, new_rem(x7, x6))=new_gcd0Gcd'00(x8, x9) ==> new_gcd0Gcd'10(False, x6, x7)_>=_new_gcd0Gcd'00(x6, new_rem(x7, x6))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'10(False, x6, x7)_>=_new_gcd0Gcd'00(x6, new_rem(x7, x6))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'00(vuz51, vuz50) -> new_gcd0Gcd'10(new_esEs0(new_rem(vuz51, vuz50)), vuz50, vuz51) *(new_gcd0Gcd'00(Integer(Pos(x19)), Integer(Neg(Succ(x18))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x19)), Integer(Neg(Succ(x18))))), Integer(Neg(Succ(x18))), Integer(Pos(x19)))) *(new_gcd0Gcd'00(Integer(Pos(x21)), Integer(Pos(Succ(x20))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x21)), Integer(Pos(Succ(x20))))), Integer(Pos(Succ(x20))), Integer(Pos(x21)))) *(new_gcd0Gcd'00(Integer(Neg(x22)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x22)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Neg(x22)))) *(new_gcd0Gcd'00(Integer(Pos(x25)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x25)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Pos(x25)))) *(new_gcd0Gcd'00(Integer(Pos(x28)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x28)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Pos(x28)))) *(new_gcd0Gcd'00(Integer(Neg(x29)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x29)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Neg(x29)))) *(new_gcd0Gcd'00(Integer(Neg(x36)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x36)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Neg(x36)))) *(new_gcd0Gcd'00(Integer(Neg(x38)), Integer(Pos(Succ(x37))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x38)), Integer(Pos(Succ(x37))))), Integer(Pos(Succ(x37))), Integer(Neg(x38)))) *(new_gcd0Gcd'00(Integer(Pos(x39)), Integer(Pos(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x39)), Integer(Pos(Zero)))), Integer(Pos(Zero)), Integer(Pos(x39)))) *(new_gcd0Gcd'00(Integer(Neg(x41)), Integer(Neg(Succ(x40))))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Neg(x41)), Integer(Neg(Succ(x40))))), Integer(Neg(Succ(x40))), Integer(Neg(x41)))) *(new_gcd0Gcd'00(Integer(Pos(x42)), Integer(Neg(Zero)))_>=_new_gcd0Gcd'10(new_esEs0(new_rem(Integer(Pos(x42)), Integer(Neg(Zero)))), Integer(Neg(Zero)), Integer(Pos(x42)))) *new_gcd0Gcd'10(False, vuz50, vuz51) -> new_gcd0Gcd'00(vuz50, new_rem(vuz51, vuz50)) *(new_gcd0Gcd'10(False, x6, x7)_>=_new_gcd0Gcd'00(x6, new_rem(x7, x6))) 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. ---------------------------------------- (32) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(vuz51, vuz50) -> new_gcd0Gcd'10(new_esEs0(new_rem(vuz51, vuz50)), vuz50, vuz51) new_gcd0Gcd'10(False, vuz50, vuz51) -> new_gcd0Gcd'00(vuz50, new_rem(vuz51, vuz50)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primModNatS1(Zero, vuz4300) -> Zero new_rem(Integer(vuz510), Integer(vuz500)) -> Integer(new_primRemInt(vuz510, vuz500)) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_error -> error([]) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_esEs0(Integer(vuz160)) -> new_primEqInt(vuz160) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_rem(Integer(x0), Integer(x1)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_esEs0(Integer(x0)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (33) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'00(vuz51, vuz50) -> new_gcd0Gcd'10(new_esEs0(new_rem(vuz51, vuz50)), vuz50, vuz51) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_esEs0(Integer(new_primRemInt(x0, x1))), Integer(x1), Integer(x0)),new_gcd0Gcd'00(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_esEs0(Integer(new_primRemInt(x0, x1))), Integer(x1), Integer(x0))) ---------------------------------------- (34) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, vuz50, vuz51) -> new_gcd0Gcd'00(vuz50, new_rem(vuz51, vuz50)) new_gcd0Gcd'00(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_esEs0(Integer(new_primRemInt(x0, x1))), Integer(x1), Integer(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primModNatS1(Zero, vuz4300) -> Zero new_rem(Integer(vuz510), Integer(vuz500)) -> Integer(new_primRemInt(vuz510, vuz500)) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_error -> error([]) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_esEs0(Integer(vuz160)) -> new_primEqInt(vuz160) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_rem(Integer(x0), Integer(x1)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_esEs0(Integer(x0)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (35) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_esEs0(Integer(new_primRemInt(x0, x1))), Integer(x1), Integer(x0)) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_primEqInt(new_primRemInt(x0, x1)), Integer(x1), Integer(x0)),new_gcd0Gcd'00(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_primEqInt(new_primRemInt(x0, x1)), Integer(x1), Integer(x0))) ---------------------------------------- (36) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, vuz50, vuz51) -> new_gcd0Gcd'00(vuz50, new_rem(vuz51, vuz50)) new_gcd0Gcd'00(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_primEqInt(new_primRemInt(x0, x1)), Integer(x1), Integer(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primModNatS1(Zero, vuz4300) -> Zero new_rem(Integer(vuz510), Integer(vuz500)) -> Integer(new_primRemInt(vuz510, vuz500)) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_error -> error([]) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_esEs0(Integer(vuz160)) -> new_primEqInt(vuz160) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_rem(Integer(x0), Integer(x1)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_esEs0(Integer(x0)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (37) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (38) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, vuz50, vuz51) -> new_gcd0Gcd'00(vuz50, new_rem(vuz51, vuz50)) new_gcd0Gcd'00(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_primEqInt(new_primRemInt(x0, x1)), Integer(x1), Integer(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_rem(Integer(vuz510), Integer(vuz500)) -> Integer(new_primRemInt(vuz510, vuz500)) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_rem(Integer(x0), Integer(x1)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_esEs0(Integer(x0)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (39) QReductionProof (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_esEs0(Integer(x0)) ---------------------------------------- (40) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, vuz50, vuz51) -> new_gcd0Gcd'00(vuz50, new_rem(vuz51, vuz50)) new_gcd0Gcd'00(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_primEqInt(new_primRemInt(x0, x1)), Integer(x1), Integer(x0)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_rem(Integer(vuz510), Integer(vuz500)) -> Integer(new_primRemInt(vuz510, vuz500)) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_rem(Integer(x0), Integer(x1)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (41) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, vuz50, vuz51) -> new_gcd0Gcd'00(vuz50, new_rem(vuz51, vuz50)) at position [1] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))),new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1)))) ---------------------------------------- (42) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_primEqInt(new_primRemInt(x0, x1)), Integer(x1), Integer(x0)) new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_rem(Integer(vuz510), Integer(vuz500)) -> Integer(new_primRemInt(vuz510, vuz500)) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_rem(Integer(x0), Integer(x1)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (43) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (44) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_primEqInt(new_primRemInt(x0, x1)), Integer(x1), Integer(x0)) new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_rem(Integer(x0), Integer(x1)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (45) QReductionProof (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(Integer(x0), Integer(x1)) ---------------------------------------- (46) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_primEqInt(new_primRemInt(x0, x1)), Integer(x1), Integer(x0)) new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (47) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'00(Integer(x0), Integer(x1)) -> new_gcd0Gcd'10(new_primEqInt(new_primRemInt(x0, x1)), Integer(x1), Integer(x0)) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))),new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0)))) (new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))),new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0)))) (new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Neg(Zero)), Integer(Neg(x0))),new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Neg(Zero)), Integer(Neg(x0)))) (new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))),new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0)))) (new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Pos(x0))),new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Pos(x0)))) (new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))),new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0)))) (new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Neg(Zero)), Integer(Pos(x0))),new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Neg(Zero)), Integer(Pos(x0)))) (new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Neg(x0))),new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Neg(x0)))) ---------------------------------------- (48) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Neg(Zero)), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Neg(Zero)), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Neg(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (49) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Neg(Zero)), Integer(Neg(x0))) at position [0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Neg(Zero)), Integer(Neg(x0))),new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Neg(Zero)), Integer(Neg(x0)))) ---------------------------------------- (50) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Neg(Zero)), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Neg(Zero)), Integer(Neg(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (51) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (52) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Neg(Zero)), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Neg(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (53) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Pos(x0))) at position [0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Pos(Zero)), Integer(Pos(x0))),new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Pos(Zero)), Integer(Pos(x0)))) ---------------------------------------- (54) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Neg(Zero)), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Pos(Zero)), Integer(Pos(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (55) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (56) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Neg(Zero)), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Neg(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (57) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Neg(Zero)), Integer(Pos(x0))) at position [0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Neg(Zero)), Integer(Pos(x0))),new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Neg(Zero)), Integer(Pos(x0)))) ---------------------------------------- (58) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Neg(Zero)), Integer(Pos(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (59) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (60) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Neg(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (61) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(new_error), Integer(Pos(Zero)), Integer(Neg(x0))) at position [0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Pos(Zero)), Integer(Neg(x0))),new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Pos(Zero)), Integer(Neg(x0)))) ---------------------------------------- (62) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Zero))) -> new_gcd0Gcd'10(new_primEqInt(error([])), Integer(Pos(Zero)), Integer(Neg(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (63) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (64) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (65) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(x1), Integer(x0)) -> new_gcd0Gcd'00(Integer(x1), Integer(new_primRemInt(x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1))))) (new_gcd0Gcd'10(False, Integer(Neg(Zero)), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Neg(Zero)), Integer(new_error)),new_gcd0Gcd'10(False, Integer(Neg(Zero)), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Neg(Zero)), Integer(new_error))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1))))) (new_gcd0Gcd'10(False, Integer(Pos(Zero)), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Pos(Zero)), Integer(new_error)),new_gcd0Gcd'10(False, Integer(Pos(Zero)), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Pos(Zero)), Integer(new_error))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1))))) (new_gcd0Gcd'10(False, Integer(Neg(Zero)), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Neg(Zero)), Integer(new_error)),new_gcd0Gcd'10(False, Integer(Neg(Zero)), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Neg(Zero)), Integer(new_error))) (new_gcd0Gcd'10(False, Integer(Pos(Zero)), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Zero)), Integer(new_error)),new_gcd0Gcd'10(False, Integer(Pos(Zero)), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Zero)), Integer(new_error))) ---------------------------------------- (66) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Zero)), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Neg(Zero)), Integer(new_error)) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'10(False, Integer(Pos(Zero)), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Pos(Zero)), Integer(new_error)) new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Zero)), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Neg(Zero)), Integer(new_error)) new_gcd0Gcd'10(False, Integer(Pos(Zero)), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Zero)), Integer(new_error)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (67) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 4 less nodes. ---------------------------------------- (68) Complex Obligation (AND) ---------------------------------------- (69) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) 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_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) 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(Neg(x0), Neg(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(Pos(x0), Pos(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_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (74) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(x0))), Integer(Neg(Zero))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x0))), Integer(Neg(Zero))),new_gcd0Gcd'10(False, Integer(Neg(Succ(x0))), Integer(Neg(Zero))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x0))), Integer(Neg(Zero)))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1))))) ---------------------------------------- (75) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(x0))), Integer(Neg(Zero))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x0))), Integer(Neg(Zero))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) 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_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (78) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Zero, Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Zero, Zero))))) ---------------------------------------- (79) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Zero, Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (80) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (81) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (82) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero))))) ---------------------------------------- (83) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (84) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Neg(x0))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))),new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero))))) (new_gcd0Gcd'00(Integer(Neg(Zero)), Integer(Neg(Succ(x0)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Neg(Succ(x0))), Integer(Neg(Zero))),new_gcd0Gcd'00(Integer(Neg(Zero)), Integer(Neg(Succ(x0)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Neg(Succ(x0))), Integer(Neg(Zero)))) (new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))),new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero))))) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))))) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0)))))) ---------------------------------------- (85) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Zero)), Integer(Neg(Succ(x0)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Neg(Succ(x0))), Integer(Neg(Zero))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (86) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (87) Complex Obligation (AND) ---------------------------------------- (88) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (89) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (90) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (91) QReductionProof (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), Zero) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS01(x0, x1) new_primModNatS02(x0, x1, Zero, Zero) ---------------------------------------- (92) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (93) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))))) ---------------------------------------- (94) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (95) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))),new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero))))) ---------------------------------------- (96) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (97) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero))))) ---------------------------------------- (98) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (99) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero))))) ---------------------------------------- (100) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (101) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Zero, Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Zero, Zero))))) ---------------------------------------- (102) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Zero, Zero)))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (103) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (104) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (105) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0))))))) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (106) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (107) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (108) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (109) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0))))))) ---------------------------------------- (110) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (111) 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(Integer(x_1)) = x_1 POL(Neg(x_1)) = x_1 POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS0(x_1)) = 1 + x_1 POL(new_primMinusNatS1) = 1 POL(new_primModNatS1(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 >= 2 *new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 > 2 *new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) ---------------------------------------- (112) YES ---------------------------------------- (113) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (114) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (115) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (116) QReductionProof (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_primMinusNatS0(x0) new_primMinusNatS1 ---------------------------------------- (117) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (118) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Zero, Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Zero, Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))))) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (119) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Zero, Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (120) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))))) ---------------------------------------- (121) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Zero, Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (122) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Zero, Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (123) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (124) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (125) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (126) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))))) ---------------------------------------- (127) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (128) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (129) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (130) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))))) ---------------------------------------- (131) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (132) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (133) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (134) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (135) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) 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_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (138) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS01(Succ(x2), Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS01(Succ(x2), Zero))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS01(Zero, Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS01(Zero, Zero))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (139) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS01(Succ(x2), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS01(Zero, Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (140) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (141) Complex Obligation (AND) ---------------------------------------- (142) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS01(Succ(x2), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (143) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS01(Succ(x2), Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))))) ---------------------------------------- (144) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (145) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))))) ---------------------------------------- (146) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (147) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))))) ---------------------------------------- (148) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (149) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(False) = 0 POL(Integer(x_1)) = 2*x_1 POL(Neg(x_1)) = 2 + 2*x_1 POL(Succ(x_1)) = 1 + x_1 POL(True) = 3 POL(Zero) = 0 POL(new_gcd0Gcd'00(x_1, x_2)) = 2*x_1 + 2*x_2 POL(new_gcd0Gcd'10(x_1, x_2, x_3)) = 2*x_2 + 2*x_3 POL(new_primEqInt(x_1)) = 0 POL(new_primMinusNatS2(x_1, x_2)) = x_1 POL(new_primModNatS01(x_1, x_2)) = 3 + x_1 POL(new_primModNatS02(x_1, x_2, x_3, x_4)) = 3 + x_1 POL(new_primModNatS1(x_1, x_2)) = 1 + x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) ---------------------------------------- (150) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (151) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes. ---------------------------------------- (152) TRUE ---------------------------------------- (153) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (154) 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)) new_primEqInt(Pos(Succ(x0))) ---------------------------------------- (155) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all (P,Q,R)-chains. ---------------------------------------- (156) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) the following chains were created: *We consider the chain new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(new_primModNatS02(Succ(x3), Succ(x2), x3, x2)))), new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x4))))), Integer(Neg(Succ(Succ(Succ(x5)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x4), Succ(x5), x4, x5))), Integer(Neg(Succ(Succ(Succ(x5))))), Integer(Neg(Succ(Succ(Succ(x4)))))) which results in the following constraint: (1) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(new_primModNatS02(Succ(x3), Succ(x2), x3, x2))))=new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x4))))), Integer(Neg(Succ(Succ(Succ(x5)))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(new_primModNatS02(Succ(x3), Succ(x2), x3, x2))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(x3)=x12 & Succ(x2)=x13 & new_primModNatS02(x12, x13, x3, x2)=Succ(Succ(Succ(x5))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(new_primModNatS02(Succ(x3), 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(x5))) which results in the following new constraints: (3) (new_primModNatS01(x16, x15)=Succ(Succ(Succ(x5))) & Succ(Succ(x14))=x16 & Succ(Zero)=x15 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS02(Succ(Succ(x14)), Succ(Zero), Succ(x14), Zero))))) (4) (new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(x5))) & Succ(Succ(x18))=x20 & Succ(Succ(x17))=x19 & (\/x21:new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(x21))) & Succ(x18)=x20 & Succ(x17)=x19 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x17))))), Integer(Neg(Succ(Succ(Succ(x18))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x17))))), Integer(Neg(new_primModNatS02(Succ(x18), Succ(x17), x18, x17))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x17)))))), Integer(Neg(Succ(Succ(Succ(Succ(x18)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x17)))))), Integer(Neg(new_primModNatS02(Succ(Succ(x18)), Succ(Succ(x17)), Succ(x18), Succ(x17)))))) (5) (new_primModNatS01(x23, x22)=Succ(Succ(Succ(x5))) & Succ(Zero)=x23 & Succ(Zero)=x22 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))))) (6) (Succ(Succ(x26))=Succ(Succ(Succ(x5))) & Succ(Zero)=x26 & Succ(Succ(x24))=x25 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x24)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x24)))))), Integer(Neg(new_primModNatS02(Succ(Zero), 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(x5))) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS2(Succ(x28), Succ(x27)), Succ(x27))=Succ(Succ(Succ(x5))) & Succ(Succ(x14))=x28 & Succ(Zero)=x27 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS02(Succ(Succ(x14)), 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(x5))) & Succ(Succ(x18))=x20 & Succ(Succ(x17))=x19 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x17)))))), Integer(Neg(Succ(Succ(Succ(Succ(x18)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x17)))))), Integer(Neg(new_primModNatS02(Succ(Succ(x18)), 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(x5))) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x47), Succ(x46)), Succ(x46))=Succ(Succ(Succ(x5))) & Succ(Zero)=x47 & Succ(Zero)=x46 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x24)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x24)))))), Integer(Neg(new_primModNatS02(Succ(Zero), 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'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS02(Succ(Succ(x14)), 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(x5))) which results in the following new constraints: (12) (new_primModNatS01(x35, x34)=Succ(Succ(Succ(x5))) & Succ(Succ(Succ(x33)))=x35 & Succ(Succ(Zero))=x34 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x33))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS02(Succ(Succ(Succ(x33))), Succ(Succ(Zero)), Succ(Succ(x33)), Succ(Zero)))))) (13) (new_primModNatS02(x39, x38, x37, x36)=Succ(Succ(Succ(x5))) & Succ(Succ(Succ(x37)))=x39 & Succ(Succ(Succ(x36)))=x38 & (\/x40:new_primModNatS02(x39, x38, x37, x36)=Succ(Succ(Succ(x40))) & Succ(Succ(x37))=x39 & Succ(Succ(x36))=x38 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x36)))))), Integer(Neg(Succ(Succ(Succ(Succ(x37)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x36)))))), Integer(Neg(new_primModNatS02(Succ(Succ(x37)), Succ(Succ(x36)), Succ(x37), Succ(x36)))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x36))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x37))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x36))))))), Integer(Neg(new_primModNatS02(Succ(Succ(Succ(x37))), Succ(Succ(Succ(x36))), Succ(Succ(x37)), Succ(Succ(x36))))))) (14) (new_primModNatS01(x42, x41)=Succ(Succ(Succ(x5))) & Succ(Succ(Zero))=x42 & Succ(Succ(Zero))=x41 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) (15) (Succ(Succ(x45))=Succ(Succ(Succ(x5))) & Succ(Succ(Zero))=x45 & Succ(Succ(Succ(x43)))=x44 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x43))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x43))))))), Integer(Neg(new_primModNatS02(Succ(Succ(Zero)), 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'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x33))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS02(Succ(Succ(Succ(x33))), 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'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x36))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x37))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x36))))))), Integer(Neg(new_primModNatS02(Succ(Succ(Succ(x37))), 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'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS02(Succ(Succ(Zero)), 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'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x43))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x43))))))), Integer(Neg(new_primModNatS02(Succ(Succ(Zero)), 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'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))))) For Pair new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x6))))), Integer(Neg(Succ(Succ(Succ(x7)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x6), Succ(x7), x6, x7))), Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Neg(Succ(Succ(Succ(x6)))))), new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Succ(x9)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x8))))), Integer(Neg(new_primModNatS02(Succ(x9), Succ(x8), x9, x8)))) which results in the following constraint: (1) (new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x6), Succ(x7), x6, x7))), Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Neg(Succ(Succ(Succ(x6))))))=new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Succ(x9)))))) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x6))))), Integer(Neg(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x6), Succ(x7), x6, x7))), Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Neg(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(x6), Succ(x7), x6, x7))=x52 & new_primEqInt(x52)=False ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x6))))), Integer(Neg(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x6), Succ(x7), x6, x7))), Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Neg(Succ(Succ(Succ(x6))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x52)=False which results in the following new constraint: (3) (False=False & Neg(new_primModNatS02(Succ(x6), Succ(x7), x6, x7))=Neg(Succ(x53)) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x6))))), Integer(Neg(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x6), Succ(x7), x6, x7))), Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Neg(Succ(Succ(Succ(x6))))))) We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: (4) (Succ(x6)=x54 & Succ(x7)=x55 & new_primModNatS02(x54, x55, x6, x7)=Succ(x53) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x6))))), Integer(Neg(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x6), Succ(x7), x6, x7))), Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Neg(Succ(Succ(Succ(x6))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x54, x55, x6, x7)=Succ(x53) which results in the following new constraints: (5) (new_primModNatS01(x58, x57)=Succ(x53) & Succ(Succ(x56))=x58 & Succ(Zero)=x57 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x56)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x56)), Succ(Zero), Succ(x56), Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x56)))))))) (6) (new_primModNatS02(x62, x61, x60, x59)=Succ(x53) & Succ(Succ(x60))=x62 & Succ(Succ(x59))=x61 & (\/x63:new_primModNatS02(x62, x61, x60, x59)=Succ(x63) & Succ(x60)=x62 & Succ(x59)=x61 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x60))))), Integer(Neg(Succ(Succ(Succ(x59))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x60), Succ(x59), x60, x59))), Integer(Neg(Succ(Succ(Succ(x59))))), Integer(Neg(Succ(Succ(Succ(x60))))))) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x60)))))), Integer(Neg(Succ(Succ(Succ(Succ(x59)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x60)), Succ(Succ(x59)), Succ(x60), Succ(x59)))), Integer(Neg(Succ(Succ(Succ(Succ(x59)))))), Integer(Neg(Succ(Succ(Succ(Succ(x60)))))))) (7) (new_primModNatS01(x65, x64)=Succ(x53) & Succ(Zero)=x65 & Succ(Zero)=x64 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) (8) (Succ(Succ(x68))=Succ(x53) & Succ(Zero)=x68 & Succ(Succ(x66))=x67 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x66)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x66)), Zero, Succ(x66)))), Integer(Neg(Succ(Succ(Succ(Succ(x66)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x58, x57)=Succ(x53) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x70), Succ(x69)), Succ(x69))=Succ(x53) & Succ(Succ(x56))=x70 & Succ(Zero)=x69 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x56)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x56)), Succ(Zero), Succ(x56), Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x56)))))))) We simplified constraint (6) using rule (IV) which results in the following new constraint: (10) (new_primModNatS02(x62, x61, x60, x59)=Succ(x53) & Succ(Succ(x60))=x62 & Succ(Succ(x59))=x61 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x60)))))), Integer(Neg(Succ(Succ(Succ(Succ(x59)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x60)), Succ(Succ(x59)), Succ(x60), Succ(x59)))), Integer(Neg(Succ(Succ(Succ(Succ(x59)))))), Integer(Neg(Succ(Succ(Succ(Succ(x60)))))))) We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x65, x64)=Succ(x53) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS2(Succ(x89), Succ(x88)), Succ(x88))=Succ(x53) & Succ(Zero)=x89 & Succ(Zero)=x88 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) We simplified constraint (8) using rules (I), (II), (IV) which results in the following new constraint: (12) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x66)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x66)), Zero, Succ(x66)))), Integer(Neg(Succ(Succ(Succ(Succ(x66)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (13) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x56)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x56)), Succ(Zero), Succ(x56), Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x56)))))))) We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x62, x61, x60, x59)=Succ(x53) which results in the following new constraints: (14) (new_primModNatS01(x77, x76)=Succ(x53) & Succ(Succ(Succ(x75)))=x77 & Succ(Succ(Zero))=x76 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x75))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x75))), Succ(Succ(Zero)), Succ(Succ(x75)), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x75))))))))) (15) (new_primModNatS02(x81, x80, x79, x78)=Succ(x53) & Succ(Succ(Succ(x79)))=x81 & Succ(Succ(Succ(x78)))=x80 & (\/x82:new_primModNatS02(x81, x80, x79, x78)=Succ(x82) & Succ(Succ(x79))=x81 & Succ(Succ(x78))=x80 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x79)))))), Integer(Neg(Succ(Succ(Succ(Succ(x78)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x79)), Succ(Succ(x78)), Succ(x79), Succ(x78)))), Integer(Neg(Succ(Succ(Succ(Succ(x78)))))), Integer(Neg(Succ(Succ(Succ(Succ(x79)))))))) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x79))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x78))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x79))), Succ(Succ(Succ(x78))), Succ(Succ(x79)), Succ(Succ(x78))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x78))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x79))))))))) (16) (new_primModNatS01(x84, x83)=Succ(x53) & Succ(Succ(Zero))=x84 & Succ(Succ(Zero))=x83 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) (17) (Succ(Succ(x87))=Succ(x53) & Succ(Succ(Zero))=x87 & Succ(Succ(Succ(x85)))=x86 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x85))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x85))), Succ(Zero), Succ(Succ(x85))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x85))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x75))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x75))), Succ(Succ(Zero)), Succ(Succ(x75)), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x75))))))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x79))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x78))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x79))), Succ(Succ(Succ(x78))), Succ(Succ(x79)), Succ(Succ(x78))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x78))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x79))))))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (17) using rules (I), (II), (IV) which results in the following new constraint: (21) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x85))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x85))), Succ(Zero), Succ(Succ(x85))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x85))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: (22) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x43))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x43))))))), Integer(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x43))), Succ(Zero), Succ(Succ(x43))))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x24)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x24)))))), Integer(Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x24)), Zero, Succ(x24)))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS02(Succ(Succ(x14)), Succ(Zero), Succ(x14), Zero))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x33))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS02(Succ(Succ(Succ(x33))), Succ(Succ(Zero)), Succ(Succ(x33)), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x36))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x37))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x36))))))), Integer(Neg(new_primModNatS02(Succ(Succ(Succ(x37))), Succ(Succ(Succ(x36))), Succ(Succ(x37)), Succ(Succ(x36))))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))))) *new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x85))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x85))), Succ(Zero), Succ(Succ(x85))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x85))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x66)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x66)), Zero, Succ(x66)))), Integer(Neg(Succ(Succ(Succ(Succ(x66)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x56)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x56)), Succ(Zero), Succ(x56), Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x56)))))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x75))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x75))), Succ(Succ(Zero)), Succ(Succ(x75)), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x75))))))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x79))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x78))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x79))), Succ(Succ(Succ(x78))), Succ(Succ(x79)), Succ(Succ(x78))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x78))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x79))))))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(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. ---------------------------------------- (157) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (158) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (159) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (160) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (161) QReductionProof (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(Neg(x0), Neg(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(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) ---------------------------------------- (162) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (163) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(x0))), Integer(Pos(Zero))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x0))), Integer(Pos(Zero))),new_gcd0Gcd'10(False, Integer(Pos(Succ(x0))), Integer(Pos(Zero))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x0))), Integer(Pos(Zero)))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1))))) ---------------------------------------- (164) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x0))), Integer(Pos(Zero))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x0))), Integer(Pos(Zero))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (165) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (166) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (167) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Zero, Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Zero, Zero))))) ---------------------------------------- (168) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Zero, Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (169) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (170) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (171) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero))))) ---------------------------------------- (172) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (173) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Pos(x0))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))),new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero))))) (new_gcd0Gcd'00(Integer(Pos(Zero)), Integer(Pos(Succ(x0)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Zero)), Integer(Pos(Succ(x0))), Integer(Pos(Zero))),new_gcd0Gcd'00(Integer(Pos(Zero)), Integer(Pos(Succ(x0)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Zero)), Integer(Pos(Succ(x0))), Integer(Pos(Zero)))) (new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))),new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero))))) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))))) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0)))))) ---------------------------------------- (174) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Zero)), Integer(Pos(Succ(x0)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Zero)), Integer(Pos(Succ(x0))), Integer(Pos(Zero))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (175) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (176) Complex Obligation (AND) ---------------------------------------- (177) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (178) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (179) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz16000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (180) QReductionProof (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), Zero) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS01(x0, x1) new_primModNatS02(x0, x1, Zero, Zero) ---------------------------------------- (181) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz16000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (182) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))))) ---------------------------------------- (183) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz16000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (184) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))),new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero))))) ---------------------------------------- (185) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz16000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (186) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero))))) ---------------------------------------- (187) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz16000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (188) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero))))) ---------------------------------------- (189) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz16000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (190) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Zero, Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Zero, Zero))))) ---------------------------------------- (191) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Zero, Zero)))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz16000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (192) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (193) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz16000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (194) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0))))))) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Zero)))))) ---------------------------------------- (195) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz16000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (196) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (197) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz16000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (198) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0))))))) ---------------------------------------- (199) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz16000))) -> False new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (200) 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(Integer(x_1)) = x_1 POL(Pos(x_1)) = x_1 POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primMinusNatS0(x_1)) = 1 + x_1 POL(new_primMinusNatS1) = 1 POL(new_primModNatS1(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 >= 2 *new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 > 2 *new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) ---------------------------------------- (201) YES ---------------------------------------- (202) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (203) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (204) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (205) QReductionProof (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_primMinusNatS0(x0) new_primMinusNatS1 ---------------------------------------- (206) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (207) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Zero, Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Zero, Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))))) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero)))))) ---------------------------------------- (208) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Zero, Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (209) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))))) ---------------------------------------- (210) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Zero, Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (211) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Zero, Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))))) ---------------------------------------- (212) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (213) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero)))))) ---------------------------------------- (214) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (215) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))))) ---------------------------------------- (216) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (217) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))))) ---------------------------------------- (218) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (219) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))))) ---------------------------------------- (220) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (221) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))))) ---------------------------------------- (222) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (223) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Zero, Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Zero)), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Zero)), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))))) ---------------------------------------- (224) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Zero)), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (225) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (226) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (227) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS01(Succ(x2), Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS01(Succ(x2), Zero))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS01(Zero, Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS01(Zero, Zero))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero)))))) ---------------------------------------- (228) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS01(Succ(x2), Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS01(Zero, Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (229) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (230) Complex Obligation (AND) ---------------------------------------- (231) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS01(Succ(x2), Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (232) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS01(Succ(x2), Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))))) ---------------------------------------- (233) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (234) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))))) ---------------------------------------- (235) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (236) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))))) ---------------------------------------- (237) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (238) 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(Neg(Succ(x0))) new_primEqInt(Neg(Zero)) ---------------------------------------- (239) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all (P,Q,R)-chains. ---------------------------------------- (240) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Pos(Succ(Succ(Zero))))), new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) which results in the following constraint: (1) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Pos(Succ(Succ(Zero)))))=new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Pos(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Pos(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x8)))))), new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x9)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x9), Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x8))))))=new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x9)))))) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x8))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS1(Succ(x8), Succ(Zero)))=x20 & new_primEqInt(x20)=False ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x8))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x20)=False which results in the following new constraint: (3) (False=False & Pos(new_primModNatS1(Succ(x8), Succ(Zero)))=Pos(Succ(x21)) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x8))))))) We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: (4) (Succ(x8)=x22 & Succ(Zero)=x23 & new_primModNatS1(x22, x23)=Succ(x21) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x8))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x22, x23)=Succ(x21) which results in the following new constraints: (5) (new_primModNatS02(x25, x24, x25, x24)=Succ(x21) & Succ(x8)=Succ(Succ(x25)) & Succ(Zero)=Succ(x24) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x8))))))) (6) (Succ(Zero)=Succ(x21) & Succ(x8)=Succ(Zero) & Succ(Zero)=Succ(x26) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x8))))))) We simplified constraint (5) using rules (I), (II), (III), (VII) which results in the following new constraint: (7) (x25=x28 & x24=x29 & new_primModNatS02(x25, x24, x28, x29)=Succ(x21) & Zero=x24 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x25)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x25)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x25)))))))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (8) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Zero))))))) We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x25, x24, x28, x29)=Succ(x21) which results in the following new constraints: (9) (new_primModNatS01(x32, x31)=Succ(x21) & x32=Succ(x30) & x31=Zero & Zero=x31 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x32)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x32)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x32)))))))) (10) (new_primModNatS02(x36, x35, x34, x33)=Succ(x21) & x36=Succ(x34) & x35=Succ(x33) & Zero=x35 & (\/x37:new_primModNatS02(x36, x35, x34, x33)=Succ(x37) & x36=x34 & x35=x33 & Zero=x35 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x36)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x36)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x36)))))))) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x36)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x36)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x36)))))))) (11) (new_primModNatS01(x39, x38)=Succ(x21) & x39=Zero & x38=Zero & Zero=x38 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x39)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x39)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x39)))))))) (12) (Succ(Succ(x42))=Succ(x21) & x42=Zero & x41=Succ(x40) & Zero=x41 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x42)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x42)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x42)))))))) We simplified constraint (9) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (13) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x30))))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x30))), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x30))))))))) We solved constraint (10) using rules (I), (II), (III).We simplified constraint (11) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (14) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) We solved constraint (12) using rules (I), (II), (III), (IV). For Pair new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x10)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x10))))), Integer(Pos(Succ(Succ(Zero))))), new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x11))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x11))))), Integer(Pos(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x10))))), Integer(Pos(Succ(Succ(Zero)))))=new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x11))))), Integer(Pos(Succ(Succ(Zero))))) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x10))))))_>=_new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x10))))), Integer(Pos(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x10))))))_>=_new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x10))))), Integer(Pos(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x17), Succ(Zero))))), new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x18)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x18))))), Integer(Pos(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))))=new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x18)))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: (2) (Succ(x17)=x47 & Succ(Zero)=x48 & new_primModNatS1(x47, x48)=Succ(Succ(Succ(x18))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x47, x48)=Succ(Succ(Succ(x18))) which results in the following new constraints: (3) (new_primModNatS02(x50, x49, x50, x49)=Succ(Succ(Succ(x18))) & Succ(x17)=Succ(Succ(x50)) & Succ(Zero)=Succ(x49) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))))) (4) (Succ(Zero)=Succ(Succ(Succ(x18))) & Succ(x17)=Succ(Zero) & Succ(Zero)=Succ(x51) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))))) We simplified constraint (3) using rules (I), (II), (III), (VII) which results in the following new constraint: (5) (x50=x53 & x49=x54 & new_primModNatS02(x50, x49, x53, x54)=Succ(Succ(Succ(x18))) & Zero=x49 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x50)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x50)), 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_primModNatS02(x50, x49, x53, x54)=Succ(Succ(Succ(x18))) which results in the following new constraints: (6) (new_primModNatS01(x57, x56)=Succ(Succ(Succ(x18))) & x57=Succ(x55) & x56=Zero & Zero=x56 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x57)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x57)), Succ(Zero)))))) (7) (new_primModNatS02(x61, x60, x59, x58)=Succ(Succ(Succ(x18))) & x61=Succ(x59) & x60=Succ(x58) & Zero=x60 & (\/x62:new_primModNatS02(x61, x60, x59, x58)=Succ(Succ(Succ(x62))) & x61=x59 & x60=x58 & Zero=x60 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x61)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x61)), Succ(Zero)))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x61)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x61)), Succ(Zero)))))) (8) (new_primModNatS01(x64, x63)=Succ(Succ(Succ(x18))) & x64=Zero & x63=Zero & Zero=x63 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x64)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x64)), Succ(Zero)))))) (9) (Succ(Succ(x67))=Succ(Succ(Succ(x18))) & x67=Zero & x66=Succ(x65) & Zero=x66 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x67)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x67)), Succ(Zero)))))) We simplified constraint (6) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (10) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x55))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(Succ(x55))), Succ(Zero)))))) We solved constraint (7) using rules (I), (II), (III).We simplified constraint (8) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))))) We solved constraint (9) using rules (I), (II), (III). To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Pos(Succ(Succ(Zero)))))) *new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x30))))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x30))), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x30))))))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) *new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x10))))))_>=_new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x10))))), Integer(Pos(Succ(Succ(Zero)))))) *new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x55))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(Succ(x55))), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(Zero)), 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. ---------------------------------------- (241) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (242) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (243) 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(Neg(Succ(x0))) new_primEqInt(Neg(Zero)) ---------------------------------------- (244) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all (P,Q,R)-chains. ---------------------------------------- (245) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) the following chains were created: *We consider the chain new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(new_primModNatS02(Succ(x3), Succ(x2), x3, x2)))), new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x4))))), Integer(Pos(Succ(Succ(Succ(x5)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x4), Succ(x5), x4, x5))), Integer(Pos(Succ(Succ(Succ(x5))))), Integer(Pos(Succ(Succ(Succ(x4)))))) which results in the following constraint: (1) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(new_primModNatS02(Succ(x3), Succ(x2), x3, x2))))=new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x4))))), Integer(Pos(Succ(Succ(Succ(x5)))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(new_primModNatS02(Succ(x3), Succ(x2), x3, x2))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(x3)=x12 & Succ(x2)=x13 & new_primModNatS02(x12, x13, x3, x2)=Succ(Succ(Succ(x5))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(new_primModNatS02(Succ(x3), 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(x5))) which results in the following new constraints: (3) (new_primModNatS01(x16, x15)=Succ(Succ(Succ(x5))) & Succ(Succ(x14))=x16 & Succ(Zero)=x15 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Zero), Succ(x14), Zero))))) (4) (new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(x5))) & Succ(Succ(x18))=x20 & Succ(Succ(x17))=x19 & (\/x21:new_primModNatS02(x20, x19, x18, x17)=Succ(Succ(Succ(x21))) & Succ(x18)=x20 & Succ(x17)=x19 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x17))))), Integer(Pos(Succ(Succ(Succ(x18))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x17))))), Integer(Pos(new_primModNatS02(Succ(x18), Succ(x17), x18, x17))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x17)))))), Integer(Pos(Succ(Succ(Succ(Succ(x18)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x17)))))), Integer(Pos(new_primModNatS02(Succ(Succ(x18)), Succ(Succ(x17)), Succ(x18), Succ(x17)))))) (5) (new_primModNatS01(x23, x22)=Succ(Succ(Succ(x5))) & Succ(Zero)=x23 & Succ(Zero)=x22 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))))) (6) (Succ(Succ(x26))=Succ(Succ(Succ(x5))) & Succ(Zero)=x26 & Succ(Succ(x24))=x25 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x24)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x24)))))), Integer(Pos(new_primModNatS02(Succ(Zero), 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(x5))) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS2(Succ(x28), Succ(x27)), Succ(x27))=Succ(Succ(Succ(x5))) & Succ(Succ(x14))=x28 & Succ(Zero)=x27 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS02(Succ(Succ(x14)), 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(x5))) & Succ(Succ(x18))=x20 & Succ(Succ(x17))=x19 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x17)))))), Integer(Pos(Succ(Succ(Succ(Succ(x18)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x17)))))), Integer(Pos(new_primModNatS02(Succ(Succ(x18)), 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(x5))) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x47), Succ(x46)), Succ(x46))=Succ(Succ(Succ(x5))) & Succ(Zero)=x47 & Succ(Zero)=x46 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x24)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x24)))))), Integer(Pos(new_primModNatS02(Succ(Zero), 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'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS02(Succ(Succ(x14)), 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(x5))) which results in the following new constraints: (12) (new_primModNatS01(x35, x34)=Succ(Succ(Succ(x5))) & Succ(Succ(Succ(x33)))=x35 & Succ(Succ(Zero))=x34 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x33))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS02(Succ(Succ(Succ(x33))), Succ(Succ(Zero)), Succ(Succ(x33)), Succ(Zero)))))) (13) (new_primModNatS02(x39, x38, x37, x36)=Succ(Succ(Succ(x5))) & Succ(Succ(Succ(x37)))=x39 & Succ(Succ(Succ(x36)))=x38 & (\/x40:new_primModNatS02(x39, x38, x37, x36)=Succ(Succ(Succ(x40))) & Succ(Succ(x37))=x39 & Succ(Succ(x36))=x38 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x36)))))), Integer(Pos(Succ(Succ(Succ(Succ(x37)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x36)))))), Integer(Pos(new_primModNatS02(Succ(Succ(x37)), Succ(Succ(x36)), Succ(x37), Succ(x36)))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x36))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x37))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x36))))))), Integer(Pos(new_primModNatS02(Succ(Succ(Succ(x37))), Succ(Succ(Succ(x36))), Succ(Succ(x37)), Succ(Succ(x36))))))) (14) (new_primModNatS01(x42, x41)=Succ(Succ(Succ(x5))) & Succ(Succ(Zero))=x42 & Succ(Succ(Zero))=x41 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) (15) (Succ(Succ(x45))=Succ(Succ(Succ(x5))) & Succ(Succ(Zero))=x45 & Succ(Succ(Succ(x43)))=x44 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x43))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x43))))))), Integer(Pos(new_primModNatS02(Succ(Succ(Zero)), 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'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x33))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS02(Succ(Succ(Succ(x33))), 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'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x36))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x37))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x36))))))), Integer(Pos(new_primModNatS02(Succ(Succ(Succ(x37))), 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'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS02(Succ(Succ(Zero)), 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'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x43))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x43))))))), Integer(Pos(new_primModNatS02(Succ(Succ(Zero)), 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'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))))) For Pair new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x6))))), Integer(Pos(Succ(Succ(Succ(x7)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x6), Succ(x7), x6, x7))), Integer(Pos(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Succ(x6)))))), new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Pos(Succ(Succ(Succ(x9)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Pos(new_primModNatS02(Succ(x9), Succ(x8), x9, x8)))) which results in the following constraint: (1) (new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x6), Succ(x7), x6, x7))), Integer(Pos(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Succ(x6))))))=new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Pos(Succ(Succ(Succ(x9)))))) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x6))))), Integer(Pos(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x6), Succ(x7), x6, x7))), Integer(Pos(Succ(Succ(Succ(x7))))), Integer(Pos(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(x6), Succ(x7), x6, x7))=x52 & new_primEqInt(x52)=False ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x6))))), Integer(Pos(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x6), Succ(x7), x6, x7))), Integer(Pos(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Succ(x6))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x52)=False which results in the following new constraint: (3) (False=False & Pos(new_primModNatS02(Succ(x6), Succ(x7), x6, x7))=Pos(Succ(x53)) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x6))))), Integer(Pos(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x6), Succ(x7), x6, x7))), Integer(Pos(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Succ(x6))))))) We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: (4) (Succ(x6)=x54 & Succ(x7)=x55 & new_primModNatS02(x54, x55, x6, x7)=Succ(x53) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x6))))), Integer(Pos(Succ(Succ(Succ(x7))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x6), Succ(x7), x6, x7))), Integer(Pos(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Succ(x6))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x54, x55, x6, x7)=Succ(x53) which results in the following new constraints: (5) (new_primModNatS01(x58, x57)=Succ(x53) & Succ(Succ(x56))=x58 & Succ(Zero)=x57 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x56)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x56)), Succ(Zero), Succ(x56), Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x56)))))))) (6) (new_primModNatS02(x62, x61, x60, x59)=Succ(x53) & Succ(Succ(x60))=x62 & Succ(Succ(x59))=x61 & (\/x63:new_primModNatS02(x62, x61, x60, x59)=Succ(x63) & Succ(x60)=x62 & Succ(x59)=x61 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x60))))), Integer(Pos(Succ(Succ(Succ(x59))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x60), Succ(x59), x60, x59))), Integer(Pos(Succ(Succ(Succ(x59))))), Integer(Pos(Succ(Succ(Succ(x60))))))) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x60)))))), Integer(Pos(Succ(Succ(Succ(Succ(x59)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x60)), Succ(Succ(x59)), Succ(x60), Succ(x59)))), Integer(Pos(Succ(Succ(Succ(Succ(x59)))))), Integer(Pos(Succ(Succ(Succ(Succ(x60)))))))) (7) (new_primModNatS01(x65, x64)=Succ(x53) & Succ(Zero)=x65 & Succ(Zero)=x64 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) (8) (Succ(Succ(x68))=Succ(x53) & Succ(Zero)=x68 & Succ(Succ(x66))=x67 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x66)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x66)), Zero, Succ(x66)))), Integer(Pos(Succ(Succ(Succ(Succ(x66)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x58, x57)=Succ(x53) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x70), Succ(x69)), Succ(x69))=Succ(x53) & Succ(Succ(x56))=x70 & Succ(Zero)=x69 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x56)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x56)), Succ(Zero), Succ(x56), Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x56)))))))) We simplified constraint (6) using rule (IV) which results in the following new constraint: (10) (new_primModNatS02(x62, x61, x60, x59)=Succ(x53) & Succ(Succ(x60))=x62 & Succ(Succ(x59))=x61 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x60)))))), Integer(Pos(Succ(Succ(Succ(Succ(x59)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x60)), Succ(Succ(x59)), Succ(x60), Succ(x59)))), Integer(Pos(Succ(Succ(Succ(Succ(x59)))))), Integer(Pos(Succ(Succ(Succ(Succ(x60)))))))) We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x65, x64)=Succ(x53) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS2(Succ(x89), Succ(x88)), Succ(x88))=Succ(x53) & Succ(Zero)=x89 & Succ(Zero)=x88 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) We simplified constraint (8) using rules (I), (II), (IV) which results in the following new constraint: (12) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x66)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x66)), Zero, Succ(x66)))), Integer(Pos(Succ(Succ(Succ(Succ(x66)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (13) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x56)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x56)), Succ(Zero), Succ(x56), Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x56)))))))) We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x62, x61, x60, x59)=Succ(x53) which results in the following new constraints: (14) (new_primModNatS01(x77, x76)=Succ(x53) & Succ(Succ(Succ(x75)))=x77 & Succ(Succ(Zero))=x76 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x75))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x75))), Succ(Succ(Zero)), Succ(Succ(x75)), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x75))))))))) (15) (new_primModNatS02(x81, x80, x79, x78)=Succ(x53) & Succ(Succ(Succ(x79)))=x81 & Succ(Succ(Succ(x78)))=x80 & (\/x82:new_primModNatS02(x81, x80, x79, x78)=Succ(x82) & Succ(Succ(x79))=x81 & Succ(Succ(x78))=x80 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x79)))))), Integer(Pos(Succ(Succ(Succ(Succ(x78)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x79)), Succ(Succ(x78)), Succ(x79), Succ(x78)))), Integer(Pos(Succ(Succ(Succ(Succ(x78)))))), Integer(Pos(Succ(Succ(Succ(Succ(x79)))))))) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x79))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x78))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x79))), Succ(Succ(Succ(x78))), Succ(Succ(x79)), Succ(Succ(x78))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x78))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x79))))))))) (16) (new_primModNatS01(x84, x83)=Succ(x53) & Succ(Succ(Zero))=x84 & Succ(Succ(Zero))=x83 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) (17) (Succ(Succ(x87))=Succ(x53) & Succ(Succ(Zero))=x87 & Succ(Succ(Succ(x85)))=x86 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x85))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x85))), Succ(Zero), Succ(Succ(x85))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x85))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x75))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x75))), Succ(Succ(Zero)), Succ(Succ(x75)), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x75))))))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x79))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x78))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x79))), Succ(Succ(Succ(x78))), Succ(Succ(x79)), Succ(Succ(x78))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x78))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x79))))))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (17) using rules (I), (II), (IV) which results in the following new constraint: (21) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x85))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x85))), Succ(Zero), Succ(Succ(x85))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x85))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: (22) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x43))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x43))))))), Integer(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x43))), Succ(Zero), Succ(Succ(x43))))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x24)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x24)))))), Integer(Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x24)), Zero, Succ(x24)))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x14)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS02(Succ(Succ(x14)), Succ(Zero), Succ(x14), Zero))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x33))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS02(Succ(Succ(Succ(x33))), Succ(Succ(Zero)), Succ(Succ(x33)), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x36))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x37))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x36))))))), Integer(Pos(new_primModNatS02(Succ(Succ(Succ(x37))), Succ(Succ(Succ(x36))), Succ(Succ(x37)), Succ(Succ(x36))))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))))) *new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x85))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x85))), Succ(Zero), Succ(Succ(x85))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x85))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x66)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x66)), Zero, Succ(x66)))), Integer(Pos(Succ(Succ(Succ(Succ(x66)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x56)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x56)), Succ(Zero), Succ(x56), Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x56)))))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x75))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x75))), Succ(Succ(Zero)), Succ(Succ(x75)), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x75))))))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x79))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x78))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x79))), Succ(Succ(Succ(x78))), Succ(Succ(x79)), Succ(Succ(x78))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x78))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x79))))))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(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. ---------------------------------------- (246) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (247) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (248) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (249) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (250) QReductionProof (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(Neg(x0), Neg(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(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) ---------------------------------------- (251) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (252) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(x1))), Integer(Pos(x0))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x1))), Integer(Pos(new_primModNatS1(x0, x1)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(x0))), Integer(Pos(Zero))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x0))), Integer(Pos(Zero))),new_gcd0Gcd'10(False, Integer(Neg(Succ(x0))), Integer(Pos(Zero))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x0))), Integer(Pos(Zero)))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1))))) ---------------------------------------- (253) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(x0))), Integer(Pos(Zero))) -> new_gcd0Gcd'00(Integer(Neg(Succ(x0))), Integer(Pos(Zero))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (254) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (255) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (256) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Zero, Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Zero, Zero))))) ---------------------------------------- (257) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Zero, Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (258) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (259) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (260) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero))))) ---------------------------------------- (261) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (262) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(x0)), Integer(Neg(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(x0, x1))), Integer(Neg(Succ(x1))), Integer(Pos(x0))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))),new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero))))) (new_gcd0Gcd'00(Integer(Pos(Zero)), Integer(Neg(Succ(x0)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Zero)), Integer(Neg(Succ(x0))), Integer(Pos(Zero))),new_gcd0Gcd'00(Integer(Pos(Zero)), Integer(Neg(Succ(x0)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Zero)), Integer(Neg(Succ(x0))), Integer(Pos(Zero)))) (new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))),new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero))))) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))))) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0)))))) ---------------------------------------- (263) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Zero)), Integer(Neg(Succ(x0)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Zero)), Integer(Neg(Succ(x0))), Integer(Pos(Zero))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (264) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (265) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (266) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))),new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero))))) ---------------------------------------- (267) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (268) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))))) ---------------------------------------- (269) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (270) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(x0)), Integer(Pos(Succ(x1)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(x0, x1))), Integer(Pos(Succ(x1))), Integer(Neg(x0))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))),new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero))))) (new_gcd0Gcd'00(Integer(Neg(Zero)), Integer(Pos(Succ(x0)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Pos(Succ(x0))), Integer(Neg(Zero))),new_gcd0Gcd'00(Integer(Neg(Zero)), Integer(Pos(Succ(x0)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Pos(Succ(x0))), Integer(Neg(Zero)))) (new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))),new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero))))) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))))) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0)))))) ---------------------------------------- (271) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Zero)), Integer(Pos(Succ(x0)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Pos(Succ(x0))), Integer(Neg(Zero))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (272) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (273) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (274) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0)))))) ---------------------------------------- (275) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (276) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))),new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero))))) ---------------------------------------- (277) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (278) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))),new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero))))) ---------------------------------------- (279) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (280) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))),new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero))))) ---------------------------------------- (281) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (282) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (283) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (284) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x1)))), Integer(Pos(new_primModNatS02(x0, x1, x0, x1)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS01(Succ(x2), Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS01(Succ(x2), Zero))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS01(Zero, Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS01(Zero, Zero))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero)))))) ---------------------------------------- (285) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS01(Succ(x2), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS01(Zero, Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (286) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS01(Succ(x2), Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))))) ---------------------------------------- (287) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS01(Zero, Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (288) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS01(Zero, Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))))) ---------------------------------------- (289) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (290) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))))) ---------------------------------------- (291) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (292) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))))) ---------------------------------------- (293) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (294) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))))) ---------------------------------------- (295) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (296) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Zero, Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Zero, Succ(Zero)))))) ---------------------------------------- (297) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Zero, Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (298) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (299) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (300) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(x1))), Integer(Neg(x0))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x1))), Integer(Neg(new_primModNatS1(x0, x1)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(x0))), Integer(Neg(Zero))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x0))), Integer(Neg(Zero))),new_gcd0Gcd'10(False, Integer(Pos(Succ(x0))), Integer(Neg(Zero))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x0))), Integer(Neg(Zero)))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1))))) ---------------------------------------- (301) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(x0))), Integer(Neg(Zero))) -> new_gcd0Gcd'00(Integer(Pos(Succ(x0))), Integer(Neg(Zero))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (302) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 2 less nodes. ---------------------------------------- (303) Complex Obligation (AND) ---------------------------------------- (304) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (305) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (306) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (307) QReductionProof (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), Zero) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS01(x0, x1) new_primModNatS02(x0, x1, Zero, Zero) ---------------------------------------- (308) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (309) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))))) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero))))) ---------------------------------------- (310) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (311) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero))))) ---------------------------------------- (312) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (313) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Zero, Zero)))),new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Zero, Zero))))) ---------------------------------------- (314) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Zero, Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (315) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (316) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (317) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0))))))) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero)))))) ---------------------------------------- (318) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (319) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (320) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (321) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0))))))) ---------------------------------------- (322) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (323) 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(Integer(x_1)) = x_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)) = 1 + x_1 POL(new_primMinusNatS1) = 1 POL(new_primModNatS1(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x0))))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x0), Zero))), Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Zero)))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 >= 2 *new_gcd0Gcd'10(False, Integer(Neg(Succ(Zero))), Integer(Pos(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Zero))), Integer(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, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) ---------------------------------------- (324) YES ---------------------------------------- (325) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (326) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (327) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (328) QReductionProof (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), Zero) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS01(x0, x1) new_primModNatS02(x0, x1, Zero, Zero) ---------------------------------------- (329) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (330) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero))))) ---------------------------------------- (331) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (332) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0))))))) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (333) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (334) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0))))))) ---------------------------------------- (335) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (336) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS1, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (337) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (338) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (339) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (340) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (341) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (342) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero))))) ---------------------------------------- (343) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (344) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (345) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (346) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero))))) ---------------------------------------- (347) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Zero, x0) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (348) 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(Integer(x_1)) = x_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)) = 1 + x_1 POL(new_primMinusNatS1) = 1 POL(new_primModNatS1(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_gcd0Gcd'10(False, Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(new_primModNatS1(Succ(x0), Zero)))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 > 2 *new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 2 >= 1, 3 >= 2 *new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x0))))), Integer(Pos(Succ(Zero)))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x0), Zero))), Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(Succ(x0)))))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 *new_gcd0Gcd'00(Integer(Pos(Succ(Zero))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Zero)))) (allowed arguments on rhs = {2, 3}) The graph contains the following edges 2 >= 2, 1 >= 3 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) ---------------------------------------- (349) YES ---------------------------------------- (350) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (351) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (352) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (353) QReductionProof (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_primMinusNatS0(x0) new_primMinusNatS1 ---------------------------------------- (354) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (355) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Zero, Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Zero, Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))))) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (356) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Zero, Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (357) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x2), Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))))) ---------------------------------------- (358) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Zero, Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (359) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Zero, Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (360) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (361) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (362) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (363) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))))) ---------------------------------------- (364) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (365) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (366) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (367) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))))) ---------------------------------------- (368) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (369) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (370) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (371) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Zero, Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (372) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(Zero)), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (373) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (374) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (375) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x1)))), Integer(Neg(new_primModNatS02(x0, x1, x0, x1)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS01(Succ(x2), Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS01(Succ(x2), Zero))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS01(Zero, Zero)))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS01(Zero, Zero))))) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero)))))) ---------------------------------------- (376) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS01(Succ(x2), Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS01(Zero, Zero)))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (377) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (378) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS01(Succ(x2), Zero)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (379) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS01(Succ(x2), Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))))) ---------------------------------------- (380) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (381) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))))) ---------------------------------------- (382) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (383) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) at position [1,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))),new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))))) ---------------------------------------- (384) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (385) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2))))))) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Zero, Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Zero, Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))))) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero)))))) ---------------------------------------- (386) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Zero, Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (387) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 1 less node. ---------------------------------------- (388) Complex Obligation (AND) ---------------------------------------- (389) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (390) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (391) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (392) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x2), Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) at position [0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))))) ---------------------------------------- (393) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (394) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))))) ---------------------------------------- (395) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (396) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) at position [0,0,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))))) ---------------------------------------- (397) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (398) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x1)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Neg(Succ(Succ(Zero))))), new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Neg(Succ(Succ(Zero)))))=new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x1))))))_>=_new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Neg(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x1))))))_>=_new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Neg(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero))))), new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x9))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x9), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x9)))))) which results in the following constraint: (1) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))=new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x9))))), Integer(Neg(Succ(Succ(Zero))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x10)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x10), Succ(Zero))))), new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x11)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x11))))), Integer(Neg(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x10), Succ(Zero)))))=new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x11)))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x10))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x10), Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: (2) (Succ(x10)=x20 & Succ(Zero)=x21 & new_primModNatS1(x20, x21)=Succ(Succ(Succ(x11))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x10))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x10), Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x20, x21)=Succ(Succ(Succ(x11))) which results in the following new constraints: (3) (Succ(Zero)=Succ(Succ(Succ(x11))) & Succ(x10)=Succ(Zero) & Succ(Zero)=Succ(x22) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x10))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x10), Succ(Zero)))))) (4) (new_primModNatS02(x24, x23, x24, x23)=Succ(Succ(Succ(x11))) & Succ(x10)=Succ(Succ(x24)) & Succ(Zero)=Succ(x23) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x10))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x10), 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) (x24=x26 & x23=x27 & new_primModNatS02(x24, x23, x26, x27)=Succ(Succ(Succ(x11))) & Zero=x23 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x24)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x24)), Succ(Zero)))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x24, x23, x26, x27)=Succ(Succ(Succ(x11))) which results in the following new constraints: (6) (new_primModNatS01(x30, x29)=Succ(Succ(Succ(x11))) & x30=Succ(x28) & x29=Zero & Zero=x29 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x30)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x30)), Succ(Zero)))))) (7) (new_primModNatS02(x34, x33, x32, x31)=Succ(Succ(Succ(x11))) & x34=Succ(x32) & x33=Succ(x31) & Zero=x33 & (\/x35:new_primModNatS02(x34, x33, x32, x31)=Succ(Succ(Succ(x35))) & x34=x32 & x33=x31 & Zero=x33 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x34)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x34)), Succ(Zero)))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x34)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x34)), Succ(Zero)))))) (8) (new_primModNatS01(x37, x36)=Succ(Succ(Succ(x11))) & x37=Zero & x36=Zero & Zero=x36 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x37)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x37)), Succ(Zero)))))) (9) (Succ(Succ(x40))=Succ(Succ(Succ(x11))) & x40=Zero & x39=Succ(x38) & Zero=x39 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x40)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x40)), Succ(Zero)))))) We simplified constraint (6) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (10) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x28))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(Succ(x28))), Succ(Zero)))))) We solved constraint (7) using rules (I), (II), (III).We simplified constraint (8) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))))) We solved constraint (9) using rules (I), (II), (III). For Pair new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x17))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17)))))), new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x18)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x18), Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17))))))=new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x18)))))) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x17))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS1(Succ(x17), Succ(Zero)))=x45 & new_primEqInt(x45)=False ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x17))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x45)=False which results in the following new constraint: (3) (False=False & Pos(new_primModNatS1(Succ(x17), Succ(Zero)))=Pos(Succ(x46)) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x17))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17))))))) We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: (4) (Succ(x17)=x47 & Succ(Zero)=x48 & new_primModNatS1(x47, x48)=Succ(x46) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x17))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x47, x48)=Succ(x46) which results in the following new constraints: (5) (Succ(Zero)=Succ(x46) & Succ(x17)=Succ(Zero) & Succ(Zero)=Succ(x49) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x17))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17))))))) (6) (new_primModNatS02(x51, x50, x51, x50)=Succ(x46) & Succ(x17)=Succ(Succ(x51)) & Succ(Zero)=Succ(x50) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x17))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x17), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x17))))))) We simplified constraint (5) using rules (I), (II), (III), (IV) which results in the following new constraint: (7) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Zero))))))) We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (8) (x51=x53 & x50=x54 & new_primModNatS02(x51, x50, x53, x54)=Succ(x46) & Zero=x50 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x51)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x51)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x51)))))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x51, x50, x53, x54)=Succ(x46) which results in the following new constraints: (9) (new_primModNatS01(x57, x56)=Succ(x46) & x57=Succ(x55) & x56=Zero & Zero=x56 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x57)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x57)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x57)))))))) (10) (new_primModNatS02(x61, x60, x59, x58)=Succ(x46) & x61=Succ(x59) & x60=Succ(x58) & Zero=x60 & (\/x62:new_primModNatS02(x61, x60, x59, x58)=Succ(x62) & x61=x59 & x60=x58 & Zero=x60 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x61)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x61)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x61)))))))) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x61)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x61)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x61)))))))) (11) (new_primModNatS01(x64, x63)=Succ(x46) & x64=Zero & x63=Zero & Zero=x63 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x64)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x64)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x64)))))))) (12) (Succ(Succ(x67))=Succ(x46) & x67=Zero & x66=Succ(x65) & Zero=x66 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x67)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x67)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x67)))))))) We simplified constraint (9) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (13) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x55))))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x55))), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x55))))))))) We solved constraint (10) using rules (I), (II), (III).We simplified constraint (11) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (14) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) We solved constraint (12) using rules (I), (II), (III), (IV). To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x1))))))_>=_new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x1))))), Integer(Neg(Succ(Succ(Zero)))))) *new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))) *new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x28))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(Succ(x28))), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))))) *new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x55))))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x55))), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x55))))))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(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. ---------------------------------------- (399) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (400) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (401) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (402) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (403) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))),new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero)))))) ---------------------------------------- (404) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (405) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (406) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (407) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x3), Succ(Zero))))), new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x4)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x4))))), Integer(Pos(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x3), Succ(Zero)))))=new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x4)))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x3), Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (VII) which results in the following new constraint: (2) (Succ(x3)=x20 & Succ(Zero)=x21 & new_primModNatS1(x20, x21)=Succ(Succ(Succ(x4))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x3), Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x20, x21)=Succ(Succ(Succ(x4))) which results in the following new constraints: (3) (Succ(Zero)=Succ(Succ(Succ(x4))) & Succ(x3)=Succ(Zero) & Succ(Zero)=Succ(x22) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x3), Succ(Zero)))))) (4) (new_primModNatS02(x24, x23, x24, x23)=Succ(Succ(Succ(x4))) & Succ(x3)=Succ(Succ(x24)) & Succ(Zero)=Succ(x23) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x3), 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) (x24=x26 & x23=x27 & new_primModNatS02(x24, x23, x26, x27)=Succ(Succ(Succ(x4))) & Zero=x23 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x24)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(x24)), Succ(Zero)))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x24, x23, x26, x27)=Succ(Succ(Succ(x4))) which results in the following new constraints: (6) (new_primModNatS01(x30, x29)=Succ(Succ(Succ(x4))) & x30=Succ(x28) & x29=Zero & Zero=x29 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x30)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(x30)), Succ(Zero)))))) (7) (new_primModNatS02(x34, x33, x32, x31)=Succ(Succ(Succ(x4))) & x34=Succ(x32) & x33=Succ(x31) & Zero=x33 & (\/x35:new_primModNatS02(x34, x33, x32, x31)=Succ(Succ(Succ(x35))) & x34=x32 & x33=x31 & Zero=x33 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x34)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(x34)), Succ(Zero)))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x34)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(x34)), Succ(Zero)))))) (8) (new_primModNatS01(x37, x36)=Succ(Succ(Succ(x4))) & x37=Zero & x36=Zero & Zero=x36 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x37)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(x37)), Succ(Zero)))))) (9) (Succ(Succ(x40))=Succ(Succ(Succ(x4))) & x40=Zero & x39=Succ(x38) & Zero=x39 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x40)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(x40)), Succ(Zero)))))) We simplified constraint (6) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (10) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x28))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(Succ(x28))), Succ(Zero)))))) We solved constraint (7) using rules (I), (II), (III).We simplified constraint (8) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))))) We solved constraint (9) using rules (I), (II), (III). For Pair new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Zero))))), new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x8))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x8)))))) which results in the following constraint: (1) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Zero)))))=new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x8))))), Integer(Pos(Succ(Succ(Zero))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x10))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x10), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x10)))))), new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x11)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x11), Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x10), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x10))))))=new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x11)))))) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x10))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x10), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x10))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS1(Succ(x10), Succ(Zero)))=x45 & new_primEqInt(x45)=False ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x10))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x10), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x10))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x45)=False which results in the following new constraint: (3) (False=False & Neg(new_primModNatS1(Succ(x10), Succ(Zero)))=Neg(Succ(x46)) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x10))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x10), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x10))))))) We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: (4) (Succ(x10)=x47 & Succ(Zero)=x48 & new_primModNatS1(x47, x48)=Succ(x46) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x10))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x10), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x10))))))) We simplified constraint (4) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x47, x48)=Succ(x46) which results in the following new constraints: (5) (Succ(Zero)=Succ(x46) & Succ(x10)=Succ(Zero) & Succ(Zero)=Succ(x49) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x10))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x10), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x10))))))) (6) (new_primModNatS02(x51, x50, x51, x50)=Succ(x46) & Succ(x10)=Succ(Succ(x51)) & Succ(Zero)=Succ(x50) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x10))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x10), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x10))))))) We simplified constraint (5) using rules (I), (II), (III), (IV) which results in the following new constraint: (7) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Zero))))))) We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (8) (x51=x53 & x50=x54 & new_primModNatS02(x51, x50, x53, x54)=Succ(x46) & Zero=x50 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x51)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x51)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x51)))))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x51, x50, x53, x54)=Succ(x46) which results in the following new constraints: (9) (new_primModNatS01(x57, x56)=Succ(x46) & x57=Succ(x55) & x56=Zero & Zero=x56 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x57)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x57)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x57)))))))) (10) (new_primModNatS02(x61, x60, x59, x58)=Succ(x46) & x61=Succ(x59) & x60=Succ(x58) & Zero=x60 & (\/x62:new_primModNatS02(x61, x60, x59, x58)=Succ(x62) & x61=x59 & x60=x58 & Zero=x60 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x61)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x61)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x61)))))))) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x61)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x61)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x61)))))))) (11) (new_primModNatS01(x64, x63)=Succ(x46) & x64=Zero & x63=Zero & Zero=x63 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x64)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x64)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x64)))))))) (12) (Succ(Succ(x67))=Succ(x46) & x67=Zero & x66=Succ(x65) & Zero=x66 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x67)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x67)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x67)))))))) We simplified constraint (9) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (13) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x55))))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x55))), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x55))))))))) We solved constraint (10) using rules (I), (II), (III).We simplified constraint (11) using rules (I), (II), (III), (IV), (VII) which results in the following new constraint: (14) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) We solved constraint (12) using rules (I), (II), (III), (IV). For Pair new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x16)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x16))))), Integer(Pos(Succ(Succ(Zero))))), new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x17))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x17))))), Integer(Pos(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x16))))), Integer(Pos(Succ(Succ(Zero)))))=new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x17))))), Integer(Pos(Succ(Succ(Zero))))) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x16))))))_>=_new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x16))))), Integer(Pos(Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x16))))))_>=_new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x16))))), Integer(Pos(Succ(Succ(Zero)))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x28))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(Succ(x28))), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))))) *new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x7))))), Integer(Pos(Succ(Succ(Zero)))))) *new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x55))))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x55))), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x55))))))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) *new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x16))))))_>=_new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x16))))), Integer(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. ---------------------------------------- (408) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x2), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (409) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (410) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))), new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x4))))), Integer(Pos(Succ(Succ(Succ(x5)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x4))))), Integer(Pos(new_primModNatS02(Succ(x5), Succ(x4), x5, x4)))) which results in the following constraint: (1) (new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2))))))=new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x4))))), Integer(Pos(Succ(Succ(Succ(x5)))))) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))=x40 & new_primEqInt(x40)=False ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x40)=False which results in the following new constraints: (3) (False=False & Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))=Pos(Succ(x41)) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2))))))) (4) (False=False & Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))=Neg(Succ(x42)) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2))))))) We simplified constraint (3) using rules (I), (II), (VII) which results in the following new constraint: (5) (Succ(x2)=x43 & Succ(x3)=x44 & new_primModNatS02(x43, x44, x2, x3)=Succ(x41) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2))))))) We solved constraint (4) using rules (I), (II).We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x43, x44, x2, x3)=Succ(x41) which results in the following new constraints: (6) (new_primModNatS01(x47, x46)=Succ(x41) & Succ(Succ(x45))=x47 & Succ(Zero)=x46 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x45)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x45)), Succ(Zero), Succ(x45), Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x45)))))))) (7) (new_primModNatS02(x51, x50, x49, x48)=Succ(x41) & Succ(Succ(x49))=x51 & Succ(Succ(x48))=x50 & (\/x52:new_primModNatS02(x51, x50, x49, x48)=Succ(x52) & Succ(x49)=x51 & Succ(x48)=x50 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x49))))), Integer(Neg(Succ(Succ(Succ(x48))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x49), Succ(x48), x49, x48))), Integer(Neg(Succ(Succ(Succ(x48))))), Integer(Pos(Succ(Succ(Succ(x49))))))) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x49)))))), Integer(Neg(Succ(Succ(Succ(Succ(x48)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x49)), Succ(Succ(x48)), Succ(x49), Succ(x48)))), Integer(Neg(Succ(Succ(Succ(Succ(x48)))))), Integer(Pos(Succ(Succ(Succ(Succ(x49)))))))) (8) (new_primModNatS01(x54, x53)=Succ(x41) & Succ(Zero)=x54 & Succ(Zero)=x53 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) (9) (Succ(Succ(x57))=Succ(x41) & Succ(Zero)=x57 & Succ(Succ(x55))=x56 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x55)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x55)), Zero, Succ(x55)))), Integer(Neg(Succ(Succ(Succ(Succ(x55)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x47, x46)=Succ(x41) which results in the following new constraint: (10) (new_primModNatS1(new_primMinusNatS2(Succ(x59), Succ(x58)), Succ(x58))=Succ(x41) & Succ(Succ(x45))=x59 & Succ(Zero)=x58 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x45)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x45)), Succ(Zero), Succ(x45), Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x45)))))))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_primModNatS02(x51, x50, x49, x48)=Succ(x41) & Succ(Succ(x49))=x51 & Succ(Succ(x48))=x50 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x49)))))), Integer(Neg(Succ(Succ(Succ(Succ(x48)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x49)), Succ(Succ(x48)), Succ(x49), Succ(x48)))), Integer(Neg(Succ(Succ(Succ(Succ(x48)))))), Integer(Pos(Succ(Succ(Succ(Succ(x49)))))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x54, x53)=Succ(x41) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS2(Succ(x78), Succ(x77)), Succ(x77))=Succ(x41) & Succ(Zero)=x78 & Succ(Zero)=x77 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: (13) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x55)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x55)), Zero, Succ(x55)))), Integer(Neg(Succ(Succ(Succ(Succ(x55)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x45)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x45)), Succ(Zero), Succ(x45), Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x45)))))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x51, x50, x49, x48)=Succ(x41) which results in the following new constraints: (15) (new_primModNatS01(x66, x65)=Succ(x41) & Succ(Succ(Succ(x64)))=x66 & Succ(Succ(Zero))=x65 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x64))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x64))), Succ(Succ(Zero)), Succ(Succ(x64)), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x64))))))))) (16) (new_primModNatS02(x70, x69, x68, x67)=Succ(x41) & Succ(Succ(Succ(x68)))=x70 & Succ(Succ(Succ(x67)))=x69 & (\/x71:new_primModNatS02(x70, x69, x68, x67)=Succ(x71) & Succ(Succ(x68))=x70 & Succ(Succ(x67))=x69 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x68)))))), Integer(Neg(Succ(Succ(Succ(Succ(x67)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x68)), Succ(Succ(x67)), Succ(x68), Succ(x67)))), Integer(Neg(Succ(Succ(Succ(Succ(x67)))))), Integer(Pos(Succ(Succ(Succ(Succ(x68)))))))) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x68))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x67))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x68))), Succ(Succ(Succ(x67))), Succ(Succ(x68)), Succ(Succ(x67))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x67))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x68))))))))) (17) (new_primModNatS01(x73, x72)=Succ(x41) & Succ(Succ(Zero))=x73 & Succ(Succ(Zero))=x72 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) (18) (Succ(Succ(x76))=Succ(x41) & Succ(Succ(Zero))=x76 & Succ(Succ(Succ(x74)))=x75 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x74))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x74))), Succ(Zero), Succ(Succ(x74))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x74))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x64))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x64))), Succ(Succ(Zero)), Succ(Succ(x64)), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x64))))))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x68))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x67))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x68))), Succ(Succ(Succ(x67))), Succ(Succ(x68)), Succ(Succ(x67))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x67))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x68))))))))) We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: (21) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: (22) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x74))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x74))), Succ(Zero), Succ(Succ(x74))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x74))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (23) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) For Pair new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) the following chains were created: *We consider the chain new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x14))))), Integer(Pos(Succ(Succ(Succ(x15)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x14))))), Integer(Pos(new_primModNatS02(Succ(x15), Succ(x14), x15, x14)))), new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x16))))), Integer(Pos(Succ(Succ(Succ(x17)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x16), Succ(x17), x16, x17))), Integer(Pos(Succ(Succ(Succ(x17))))), Integer(Neg(Succ(Succ(Succ(x16)))))) which results in the following constraint: (1) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x14))))), Integer(Pos(new_primModNatS02(Succ(x15), Succ(x14), x15, x14))))=new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x16))))), Integer(Pos(Succ(Succ(Succ(x17)))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x14))))), Integer(Pos(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x14))))), Integer(Pos(new_primModNatS02(Succ(x15), Succ(x14), x15, x14))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(x15)=x83 & Succ(x14)=x84 & new_primModNatS02(x83, x84, x15, x14)=Succ(Succ(Succ(x17))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x14))))), Integer(Pos(Succ(Succ(Succ(x15))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x14))))), Integer(Pos(new_primModNatS02(Succ(x15), Succ(x14), x15, x14))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x83, x84, x15, x14)=Succ(Succ(Succ(x17))) which results in the following new constraints: (3) (new_primModNatS01(x87, x86)=Succ(Succ(Succ(x17))) & Succ(Succ(x85))=x87 & Succ(Zero)=x86 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x85)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS02(Succ(Succ(x85)), Succ(Zero), Succ(x85), Zero))))) (4) (new_primModNatS02(x91, x90, x89, x88)=Succ(Succ(Succ(x17))) & Succ(Succ(x89))=x91 & Succ(Succ(x88))=x90 & (\/x92:new_primModNatS02(x91, x90, x89, x88)=Succ(Succ(Succ(x92))) & Succ(x89)=x91 & Succ(x88)=x90 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x88))))), Integer(Pos(Succ(Succ(Succ(x89))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x88))))), Integer(Pos(new_primModNatS02(Succ(x89), Succ(x88), x89, x88))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x88)))))), Integer(Pos(Succ(Succ(Succ(Succ(x89)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x88)))))), Integer(Pos(new_primModNatS02(Succ(Succ(x89)), Succ(Succ(x88)), Succ(x89), Succ(x88)))))) (5) (new_primModNatS01(x94, x93)=Succ(Succ(Succ(x17))) & Succ(Zero)=x94 & Succ(Zero)=x93 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))))) (6) (Succ(Succ(x97))=Succ(Succ(Succ(x17))) & Succ(Zero)=x97 & Succ(Succ(x95))=x96 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x95)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x95)))))), Integer(Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x95)), Zero, Succ(x95)))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x87, x86)=Succ(Succ(Succ(x17))) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS2(Succ(x99), Succ(x98)), Succ(x98))=Succ(Succ(Succ(x17))) & Succ(Succ(x85))=x99 & Succ(Zero)=x98 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x85)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS02(Succ(Succ(x85)), Succ(Zero), Succ(x85), Zero))))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS02(x91, x90, x89, x88)=Succ(Succ(Succ(x17))) & Succ(Succ(x89))=x91 & Succ(Succ(x88))=x90 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x88)))))), Integer(Pos(Succ(Succ(Succ(Succ(x89)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x88)))))), Integer(Pos(new_primModNatS02(Succ(Succ(x89)), Succ(Succ(x88)), Succ(x89), Succ(x88)))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x94, x93)=Succ(Succ(Succ(x17))) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x118), Succ(x117)), Succ(x117))=Succ(Succ(Succ(x17))) & Succ(Zero)=x118 & Succ(Zero)=x117 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x95)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x95)))))), Integer(Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x95)), Zero, Succ(x95)))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x85)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS02(Succ(Succ(x85)), Succ(Zero), Succ(x85), Zero))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x91, x90, x89, x88)=Succ(Succ(Succ(x17))) which results in the following new constraints: (12) (new_primModNatS01(x106, x105)=Succ(Succ(Succ(x17))) & Succ(Succ(Succ(x104)))=x106 & Succ(Succ(Zero))=x105 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x104))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS02(Succ(Succ(Succ(x104))), Succ(Succ(Zero)), Succ(Succ(x104)), Succ(Zero)))))) (13) (new_primModNatS02(x110, x109, x108, x107)=Succ(Succ(Succ(x17))) & Succ(Succ(Succ(x108)))=x110 & Succ(Succ(Succ(x107)))=x109 & (\/x111:new_primModNatS02(x110, x109, x108, x107)=Succ(Succ(Succ(x111))) & Succ(Succ(x108))=x110 & Succ(Succ(x107))=x109 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x107)))))), Integer(Pos(Succ(Succ(Succ(Succ(x108)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x107)))))), Integer(Pos(new_primModNatS02(Succ(Succ(x108)), Succ(Succ(x107)), Succ(x108), Succ(x107)))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x107))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x108))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x107))))))), Integer(Pos(new_primModNatS02(Succ(Succ(Succ(x108))), Succ(Succ(Succ(x107))), Succ(Succ(x108)), Succ(Succ(x107))))))) (14) (new_primModNatS01(x113, x112)=Succ(Succ(Succ(x17))) & Succ(Succ(Zero))=x113 & Succ(Succ(Zero))=x112 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) (15) (Succ(Succ(x116))=Succ(Succ(Succ(x17))) & Succ(Succ(Zero))=x116 & Succ(Succ(Succ(x114)))=x115 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x114))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x114))))))), Integer(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x114))), Succ(Zero), Succ(Succ(x114))))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x104))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS02(Succ(Succ(Succ(x104))), Succ(Succ(Zero)), Succ(Succ(x104)), Succ(Zero)))))) We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: (17) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x107))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x108))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x107))))))), Integer(Pos(new_primModNatS02(Succ(Succ(Succ(x108))), Succ(Succ(Succ(x107))), Succ(Succ(x108)), Succ(Succ(x107))))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS02(Succ(Succ(Zero)), 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'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x114))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x114))))))), Integer(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x114))), Succ(Zero), Succ(Succ(x114))))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))))) For Pair new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) the following chains were created: *We consider the chain new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x26))))), Integer(Pos(Succ(Succ(Succ(x27)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x26), Succ(x27), x26, x27))), Integer(Pos(Succ(Succ(Succ(x27))))), Integer(Neg(Succ(Succ(Succ(x26)))))), new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x28))))), Integer(Neg(Succ(Succ(Succ(x29)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x28))))), Integer(Neg(new_primModNatS02(Succ(x29), Succ(x28), x29, x28)))) which results in the following constraint: (1) (new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x26), Succ(x27), x26, x27))), Integer(Pos(Succ(Succ(Succ(x27))))), Integer(Neg(Succ(Succ(Succ(x26))))))=new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x28))))), Integer(Neg(Succ(Succ(Succ(x29)))))) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x26))))), Integer(Pos(Succ(Succ(Succ(x27))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x26), Succ(x27), x26, x27))), Integer(Pos(Succ(Succ(Succ(x27))))), Integer(Neg(Succ(Succ(Succ(x26))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS02(Succ(x26), Succ(x27), x26, x27))=x123 & new_primEqInt(x123)=False ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x26))))), Integer(Pos(Succ(Succ(Succ(x27))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x26), Succ(x27), x26, x27))), Integer(Pos(Succ(Succ(Succ(x27))))), Integer(Neg(Succ(Succ(Succ(x26))))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primEqInt(x123)=False which results in the following new constraints: (3) (False=False & Neg(new_primModNatS02(Succ(x26), Succ(x27), x26, x27))=Pos(Succ(x124)) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x26))))), Integer(Pos(Succ(Succ(Succ(x27))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x26), Succ(x27), x26, x27))), Integer(Pos(Succ(Succ(Succ(x27))))), Integer(Neg(Succ(Succ(Succ(x26))))))) (4) (False=False & Neg(new_primModNatS02(Succ(x26), Succ(x27), x26, x27))=Neg(Succ(x125)) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x26))))), Integer(Pos(Succ(Succ(Succ(x27))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x26), Succ(x27), x26, x27))), Integer(Pos(Succ(Succ(Succ(x27))))), Integer(Neg(Succ(Succ(Succ(x26))))))) 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(x26)=x126 & Succ(x27)=x127 & new_primModNatS02(x126, x127, x26, x27)=Succ(x125) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x26))))), Integer(Pos(Succ(Succ(Succ(x27))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x26), Succ(x27), x26, x27))), Integer(Pos(Succ(Succ(Succ(x27))))), Integer(Neg(Succ(Succ(Succ(x26))))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x126, x127, x26, x27)=Succ(x125) which results in the following new constraints: (6) (new_primModNatS01(x130, x129)=Succ(x125) & Succ(Succ(x128))=x130 & Succ(Zero)=x129 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x128)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x128)), Succ(Zero), Succ(x128), Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x128)))))))) (7) (new_primModNatS02(x134, x133, x132, x131)=Succ(x125) & Succ(Succ(x132))=x134 & Succ(Succ(x131))=x133 & (\/x135:new_primModNatS02(x134, x133, x132, x131)=Succ(x135) & Succ(x132)=x134 & Succ(x131)=x133 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x132))))), Integer(Pos(Succ(Succ(Succ(x131))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x132), Succ(x131), x132, x131))), Integer(Pos(Succ(Succ(Succ(x131))))), Integer(Neg(Succ(Succ(Succ(x132))))))) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x132)))))), Integer(Pos(Succ(Succ(Succ(Succ(x131)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x132)), Succ(Succ(x131)), Succ(x132), Succ(x131)))), Integer(Pos(Succ(Succ(Succ(Succ(x131)))))), Integer(Neg(Succ(Succ(Succ(Succ(x132)))))))) (8) (new_primModNatS01(x137, x136)=Succ(x125) & Succ(Zero)=x137 & Succ(Zero)=x136 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) (9) (Succ(Succ(x140))=Succ(x125) & Succ(Zero)=x140 & Succ(Succ(x138))=x139 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x138)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x138)), Zero, Succ(x138)))), Integer(Pos(Succ(Succ(Succ(Succ(x138)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) We simplified constraint (6) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x130, x129)=Succ(x125) which results in the following new constraint: (10) (new_primModNatS1(new_primMinusNatS2(Succ(x142), Succ(x141)), Succ(x141))=Succ(x125) & Succ(Succ(x128))=x142 & Succ(Zero)=x141 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x128)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x128)), Succ(Zero), Succ(x128), Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x128)))))))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_primModNatS02(x134, x133, x132, x131)=Succ(x125) & Succ(Succ(x132))=x134 & Succ(Succ(x131))=x133 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x132)))))), Integer(Pos(Succ(Succ(Succ(Succ(x131)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x132)), Succ(Succ(x131)), Succ(x132), Succ(x131)))), Integer(Pos(Succ(Succ(Succ(Succ(x131)))))), Integer(Neg(Succ(Succ(Succ(Succ(x132)))))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x137, x136)=Succ(x125) which results in the following new constraint: (12) (new_primModNatS1(new_primMinusNatS2(Succ(x161), Succ(x160)), Succ(x160))=Succ(x125) & Succ(Zero)=x161 & Succ(Zero)=x160 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) We simplified constraint (9) using rules (I), (II), (IV) which results in the following new constraint: (13) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x138)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x138)), Zero, Succ(x138)))), Integer(Pos(Succ(Succ(Succ(Succ(x138)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) We simplified constraint (10) using rules (III), (IV), (VII) which results in the following new constraint: (14) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x128)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x128)), Succ(Zero), Succ(x128), Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x128)))))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x134, x133, x132, x131)=Succ(x125) which results in the following new constraints: (15) (new_primModNatS01(x149, x148)=Succ(x125) & Succ(Succ(Succ(x147)))=x149 & Succ(Succ(Zero))=x148 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x147))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x147))), Succ(Succ(Zero)), Succ(Succ(x147)), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x147))))))))) (16) (new_primModNatS02(x153, x152, x151, x150)=Succ(x125) & Succ(Succ(Succ(x151)))=x153 & Succ(Succ(Succ(x150)))=x152 & (\/x154:new_primModNatS02(x153, x152, x151, x150)=Succ(x154) & Succ(Succ(x151))=x153 & Succ(Succ(x150))=x152 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x151)))))), Integer(Pos(Succ(Succ(Succ(Succ(x150)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x151)), Succ(Succ(x150)), Succ(x151), Succ(x150)))), Integer(Pos(Succ(Succ(Succ(Succ(x150)))))), Integer(Neg(Succ(Succ(Succ(Succ(x151)))))))) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x151))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x150))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x151))), Succ(Succ(Succ(x150))), Succ(Succ(x151)), Succ(Succ(x150))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x150))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x151))))))))) (17) (new_primModNatS01(x156, x155)=Succ(x125) & Succ(Succ(Zero))=x156 & Succ(Succ(Zero))=x155 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) (18) (Succ(Succ(x159))=Succ(x125) & Succ(Succ(Zero))=x159 & Succ(Succ(Succ(x157)))=x158 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x157))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x157))), Succ(Zero), Succ(Succ(x157))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x157))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (15) using rules (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x147))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x147))), Succ(Succ(Zero)), Succ(Succ(x147)), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x147))))))))) We simplified constraint (16) using rules (III), (IV) which results in the following new constraint: (20) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x151))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x150))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x151))), Succ(Succ(Succ(x150))), Succ(Succ(x151)), Succ(Succ(x150))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x150))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x151))))))))) We simplified constraint (17) using rules (III), (IV) which results in the following new constraint: (21) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (18) using rules (I), (II), (IV) which results in the following new constraint: (22) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x157))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x157))), Succ(Zero), Succ(Succ(x157))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x157))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (23) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) For Pair new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) the following chains were created: *We consider the chain new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x30))))), Integer(Neg(Succ(Succ(Succ(x31)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x30))))), Integer(Neg(new_primModNatS02(Succ(x31), Succ(x30), x31, x30)))), new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x32))))), Integer(Neg(Succ(Succ(Succ(x33)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x32), Succ(x33), x32, x33))), Integer(Neg(Succ(Succ(Succ(x33))))), Integer(Pos(Succ(Succ(Succ(x32)))))) which results in the following constraint: (1) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x30))))), Integer(Neg(new_primModNatS02(Succ(x31), Succ(x30), x31, x30))))=new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x32))))), Integer(Neg(Succ(Succ(Succ(x33)))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x30))))), Integer(Neg(Succ(Succ(Succ(x31))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x30))))), Integer(Neg(new_primModNatS02(Succ(x31), Succ(x30), x31, x30))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(x31)=x166 & Succ(x30)=x167 & new_primModNatS02(x166, x167, x31, x30)=Succ(Succ(Succ(x33))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x30))))), Integer(Neg(Succ(Succ(Succ(x31))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x30))))), Integer(Neg(new_primModNatS02(Succ(x31), Succ(x30), x31, x30))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x166, x167, x31, x30)=Succ(Succ(Succ(x33))) which results in the following new constraints: (3) (new_primModNatS01(x170, x169)=Succ(Succ(Succ(x33))) & Succ(Succ(x168))=x170 & Succ(Zero)=x169 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x168)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS02(Succ(Succ(x168)), Succ(Zero), Succ(x168), Zero))))) (4) (new_primModNatS02(x174, x173, x172, x171)=Succ(Succ(Succ(x33))) & Succ(Succ(x172))=x174 & Succ(Succ(x171))=x173 & (\/x175:new_primModNatS02(x174, x173, x172, x171)=Succ(Succ(Succ(x175))) & Succ(x172)=x174 & Succ(x171)=x173 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x171))))), Integer(Neg(Succ(Succ(Succ(x172))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x171))))), Integer(Neg(new_primModNatS02(Succ(x172), Succ(x171), x172, x171))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x171)))))), Integer(Neg(Succ(Succ(Succ(Succ(x172)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x171)))))), Integer(Neg(new_primModNatS02(Succ(Succ(x172)), Succ(Succ(x171)), Succ(x172), Succ(x171)))))) (5) (new_primModNatS01(x177, x176)=Succ(Succ(Succ(x33))) & Succ(Zero)=x177 & Succ(Zero)=x176 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))))) (6) (Succ(Succ(x180))=Succ(Succ(Succ(x33))) & Succ(Zero)=x180 & Succ(Succ(x178))=x179 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x178)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x178)))))), Integer(Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x178)), Zero, Succ(x178)))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x170, x169)=Succ(Succ(Succ(x33))) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS2(Succ(x182), Succ(x181)), Succ(x181))=Succ(Succ(Succ(x33))) & Succ(Succ(x168))=x182 & Succ(Zero)=x181 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x168)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS02(Succ(Succ(x168)), Succ(Zero), Succ(x168), Zero))))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS02(x174, x173, x172, x171)=Succ(Succ(Succ(x33))) & Succ(Succ(x172))=x174 & Succ(Succ(x171))=x173 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x171)))))), Integer(Neg(Succ(Succ(Succ(Succ(x172)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x171)))))), Integer(Neg(new_primModNatS02(Succ(Succ(x172)), Succ(Succ(x171)), Succ(x172), Succ(x171)))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x177, x176)=Succ(Succ(Succ(x33))) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x201), Succ(x200)), Succ(x200))=Succ(Succ(Succ(x33))) & Succ(Zero)=x201 & Succ(Zero)=x200 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))))) We simplified constraint (6) using rules (I), (II), (III), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x178)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x178)))))), Integer(Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x178)), Zero, Succ(x178)))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x168)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS02(Succ(Succ(x168)), Succ(Zero), Succ(x168), Zero))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x174, x173, x172, x171)=Succ(Succ(Succ(x33))) which results in the following new constraints: (12) (new_primModNatS01(x189, x188)=Succ(Succ(Succ(x33))) & Succ(Succ(Succ(x187)))=x189 & Succ(Succ(Zero))=x188 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x187))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS02(Succ(Succ(Succ(x187))), Succ(Succ(Zero)), Succ(Succ(x187)), Succ(Zero)))))) (13) (new_primModNatS02(x193, x192, x191, x190)=Succ(Succ(Succ(x33))) & Succ(Succ(Succ(x191)))=x193 & Succ(Succ(Succ(x190)))=x192 & (\/x194:new_primModNatS02(x193, x192, x191, x190)=Succ(Succ(Succ(x194))) & Succ(Succ(x191))=x193 & Succ(Succ(x190))=x192 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x190)))))), Integer(Neg(Succ(Succ(Succ(Succ(x191)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x190)))))), Integer(Neg(new_primModNatS02(Succ(Succ(x191)), Succ(Succ(x190)), Succ(x191), Succ(x190)))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x190))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x191))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x190))))))), Integer(Neg(new_primModNatS02(Succ(Succ(Succ(x191))), Succ(Succ(Succ(x190))), Succ(Succ(x191)), Succ(Succ(x190))))))) (14) (new_primModNatS01(x196, x195)=Succ(Succ(Succ(x33))) & Succ(Succ(Zero))=x196 & Succ(Succ(Zero))=x195 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) (15) (Succ(Succ(x199))=Succ(Succ(Succ(x33))) & Succ(Succ(Zero))=x199 & Succ(Succ(Succ(x197)))=x198 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x197))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x197))))))), Integer(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x197))), Succ(Zero), Succ(Succ(x197))))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x187))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS02(Succ(Succ(Succ(x187))), Succ(Succ(Zero)), Succ(Succ(x187)), Succ(Zero)))))) We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: (17) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x190))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x191))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x190))))))), Integer(Neg(new_primModNatS02(Succ(Succ(Succ(x191))), Succ(Succ(Succ(x190))), Succ(Succ(x191)), Succ(Succ(x190))))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS02(Succ(Succ(Zero)), 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'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x197))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x197))))))), Integer(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x197))), Succ(Zero), Succ(Succ(x197))))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x74))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x74))), Succ(Zero), Succ(Succ(x74))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x74))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x55)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x55)), Zero, Succ(x55)))), Integer(Neg(Succ(Succ(Succ(Succ(x55)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x45)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(x45)), Succ(Zero), Succ(x45), Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x45)))))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x64))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x64))), Succ(Succ(Zero)), Succ(Succ(x64)), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x64))))))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x68))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x67))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Succ(x68))), Succ(Succ(Succ(x67))), Succ(Succ(x68)), Succ(Succ(x67))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x67))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x68))))))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) *new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x114))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x114))))))), Integer(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x114))), Succ(Zero), Succ(Succ(x114))))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x95)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x95)))))), Integer(Pos(new_primModNatS02(Succ(Zero), Succ(Succ(x95)), Zero, Succ(x95)))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x85)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS02(Succ(Succ(x85)), Succ(Zero), Succ(x85), Zero))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x104))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS02(Succ(Succ(Succ(x104))), Succ(Succ(Zero)), Succ(Succ(x104)), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x107))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x108))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x107))))))), Integer(Pos(new_primModNatS02(Succ(Succ(Succ(x108))), Succ(Succ(Succ(x107))), Succ(Succ(x108)), Succ(Succ(x107))))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))))) *new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x157))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x157))), Succ(Zero), Succ(Succ(x157))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x157))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x138)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x138)), Zero, Succ(x138)))), Integer(Pos(Succ(Succ(Succ(Succ(x138)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x128)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(x128)), Succ(Zero), Succ(x128), Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x128)))))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x147))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x147))), Succ(Succ(Zero)), Succ(Succ(x147)), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x147))))))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x151))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x150))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Succ(x151))), Succ(Succ(Succ(x150))), Succ(Succ(x151)), Succ(Succ(x150))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x150))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x151))))))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) *new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x197))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x197))))))), Integer(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x197))), Succ(Zero), Succ(Succ(x197))))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x178)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x178)))))), Integer(Neg(new_primModNatS02(Succ(Zero), Succ(Succ(x178)), Zero, Succ(x178)))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x168)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS02(Succ(Succ(x168)), Succ(Zero), Succ(x168), Zero))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x187))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS02(Succ(Succ(Succ(x187))), Succ(Succ(Zero)), Succ(Succ(x187)), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x190))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x191))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x190))))))), Integer(Neg(new_primModNatS02(Succ(Succ(Succ(x191))), Succ(Succ(Succ(x190))), Succ(Succ(x191)), Succ(Succ(x190))))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS02(Succ(Zero), Succ(Zero), Zero, 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. ---------------------------------------- (411) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))), Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x3))))), Integer(Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (412) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS(Succ(Succ(vuz22000)), Succ(vuz40000)) -> new_primDivNatS0(vuz22000, vuz40000, vuz22000, vuz40000) new_primDivNatS0(vuz69, vuz70, Zero, Zero) -> new_primDivNatS00(vuz69, vuz70) new_primDivNatS(Succ(Succ(vuz22000)), Zero) -> new_primDivNatS(new_primMinusNatS0(vuz22000), Zero) new_primDivNatS0(vuz69, vuz70, Succ(vuz710), Zero) -> new_primDivNatS(new_primMinusNatS3(vuz69, vuz70), Succ(vuz70)) new_primDivNatS0(vuz69, vuz70, Succ(vuz710), Succ(vuz720)) -> new_primDivNatS0(vuz69, vuz70, vuz710, vuz720) new_primDivNatS00(vuz69, vuz70) -> new_primDivNatS(new_primMinusNatS3(vuz69, vuz70), Succ(vuz70)) new_primDivNatS(Succ(Zero), Zero) -> new_primDivNatS(new_primMinusNatS1, Zero) The TRS R consists of the following rules: new_primMinusNatS3(vuz69, vuz70) -> new_primMinusNatS2(vuz69, vuz70) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) new_primMinusNatS3(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (413) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (414) Complex Obligation (AND) ---------------------------------------- (415) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS(Succ(Succ(vuz22000)), Zero) -> new_primDivNatS(new_primMinusNatS0(vuz22000), Zero) The TRS R consists of the following rules: new_primMinusNatS3(vuz69, vuz70) -> new_primMinusNatS2(vuz69, vuz70) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) new_primMinusNatS3(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (416) 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(vuz22000)), Zero) -> new_primDivNatS(new_primMinusNatS0(vuz22000), Zero) Strictly oriented rules of the TRS R: new_primMinusNatS3(vuz69, vuz70) -> new_primMinusNatS2(vuz69, vuz70) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero Used ordering: Polynomial interpretation [POLO]: POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 POL(new_primDivNatS(x_1, x_2)) = x_1 + x_2 POL(new_primMinusNatS0(x_1)) = 1 + x_1 POL(new_primMinusNatS1) = 2 POL(new_primMinusNatS2(x_1, x_2)) = 1 + 2*x_1 + x_2 POL(new_primMinusNatS3(x_1, x_2)) = 2 + 2*x_1 + 2*x_2 ---------------------------------------- (417) Obligation: Q DP problem: P is empty. The TRS R consists of the following rules: new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) new_primMinusNatS3(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (418) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (419) YES ---------------------------------------- (420) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS0(vuz69, vuz70, Zero, Zero) -> new_primDivNatS00(vuz69, vuz70) new_primDivNatS00(vuz69, vuz70) -> new_primDivNatS(new_primMinusNatS3(vuz69, vuz70), Succ(vuz70)) new_primDivNatS(Succ(Succ(vuz22000)), Succ(vuz40000)) -> new_primDivNatS0(vuz22000, vuz40000, vuz22000, vuz40000) new_primDivNatS0(vuz69, vuz70, Succ(vuz710), Zero) -> new_primDivNatS(new_primMinusNatS3(vuz69, vuz70), Succ(vuz70)) new_primDivNatS0(vuz69, vuz70, Succ(vuz710), Succ(vuz720)) -> new_primDivNatS0(vuz69, vuz70, vuz710, vuz720) The TRS R consists of the following rules: new_primMinusNatS3(vuz69, vuz70) -> new_primMinusNatS2(vuz69, vuz70) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS1 new_primMinusNatS0(x0) new_primMinusNatS3(x0, x1) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (421) 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_primMinusNatS2(x_1, x_2)) = x_1 POL(new_primMinusNatS3(x_1, x_2)) = x_1 From the DPs we obtained the following set of size-change graphs: *new_primDivNatS00(vuz69, vuz70) -> new_primDivNatS(new_primMinusNatS3(vuz69, vuz70), Succ(vuz70)) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1 *new_primDivNatS(Succ(Succ(vuz22000)), Succ(vuz40000)) -> new_primDivNatS0(vuz22000, vuz40000, vuz22000, vuz40000) (allowed arguments on rhs = {1, 2, 3, 4}) The graph contains the following edges 1 > 1, 2 > 2, 1 > 3, 2 > 4 *new_primDivNatS0(vuz69, vuz70, Succ(vuz710), Succ(vuz720)) -> new_primDivNatS0(vuz69, vuz70, vuz710, vuz720) (allowed arguments on rhs = {1, 2, 3, 4}) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 *new_primDivNatS0(vuz69, vuz70, Zero, Zero) -> new_primDivNatS00(vuz69, vuz70) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1, 2 >= 2 *new_primDivNatS0(vuz69, vuz70, Succ(vuz710), Zero) -> new_primDivNatS(new_primMinusNatS3(vuz69, vuz70), Succ(vuz70)) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1 We oriented the following set of usable rules [AAECC05,FROCOS05]. new_primMinusNatS3(vuz69, vuz70) -> new_primMinusNatS2(vuz69, vuz70) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) ---------------------------------------- (422) YES ---------------------------------------- (423) Obligation: Q DP problem: The TRS P consists of the following rules: new_primMulNat(Succ(vuz300), Succ(vuz400)) -> new_primMulNat(vuz300, Succ(vuz400)) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (424) 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(vuz300), Succ(vuz400)) -> new_primMulNat(vuz300, Succ(vuz400)) The graph contains the following edges 1 > 1, 2 >= 2 ---------------------------------------- (425) YES ---------------------------------------- (426) Obligation: Q DP problem: The TRS P consists of the following rules: new_primMinusNatS(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS(vuz690, vuz700) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (427) 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(vuz690), Succ(vuz700)) -> new_primMinusNatS(vuz690, vuz700) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (428) YES ---------------------------------------- (429) Obligation: Q DP problem: The TRS P consists of the following rules: new_primPlusNat(Succ(vuz1800), Succ(vuz4000)) -> new_primPlusNat(vuz1800, vuz4000) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (430) 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(vuz1800), Succ(vuz4000)) -> new_primPlusNat(vuz1800, vuz4000) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (431) YES ---------------------------------------- (432) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'(vuz47, vuz46) -> new_gcd0Gcd'1(new_esEs(vuz46), vuz47, vuz46) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_esEs(Neg(Succ(vuz1700))) -> new_primEqInt(Neg(Succ(vuz1700))) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primModNatS1(Zero, vuz4300) -> Zero new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_error -> error([]) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primEqInt(Neg(Succ(vuz16000))) -> False new_esEs(Pos(Succ(vuz1700))) -> new_primEqInt(Pos(Succ(vuz1700))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_esEs(Pos(Zero)) new_esEs(Pos(Succ(x0))) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_esEs(Neg(Succ(x0))) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_esEs(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (433) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'(vuz47, vuz46) -> new_gcd0Gcd'1(new_esEs(vuz46), vuz47, vuz46) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(x0))), y0, Neg(Succ(x0))),new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(x0))), y0, Neg(Succ(x0)))) (new_gcd0Gcd'(y0, Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero)), y0, Neg(Zero)),new_gcd0Gcd'(y0, Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero)), y0, Neg(Zero))) (new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0))),new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0)))) (new_gcd0Gcd'(y0, Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero)), y0, Pos(Zero)),new_gcd0Gcd'(y0, Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero)), y0, Pos(Zero))) ---------------------------------------- (434) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(x0))), y0, Neg(Succ(x0))) new_gcd0Gcd'(y0, Neg(Zero)) -> new_gcd0Gcd'1(new_primEqInt(Neg(Zero)), y0, Neg(Zero)) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0))) new_gcd0Gcd'(y0, Pos(Zero)) -> new_gcd0Gcd'1(new_primEqInt(Pos(Zero)), y0, Pos(Zero)) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_esEs(Neg(Succ(vuz1700))) -> new_primEqInt(Neg(Succ(vuz1700))) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primModNatS1(Zero, vuz4300) -> Zero new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_error -> error([]) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primEqInt(Neg(Succ(vuz16000))) -> False new_esEs(Pos(Succ(vuz1700))) -> new_primEqInt(Pos(Succ(vuz1700))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_esEs(Pos(Zero)) new_esEs(Pos(Succ(x0))) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_esEs(Neg(Succ(x0))) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_esEs(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (435) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (436) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(x0))), y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_esEs(Neg(Succ(vuz1700))) -> new_primEqInt(Neg(Succ(vuz1700))) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primModNatS1(Zero, vuz4300) -> Zero new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primEqInt(Pos(Succ(vuz16000))) -> False new_primEqInt(Pos(Zero)) -> True new_error -> error([]) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primEqInt(Neg(Succ(vuz16000))) -> False new_esEs(Pos(Succ(vuz1700))) -> new_primEqInt(Pos(Succ(vuz1700))) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_esEs(Pos(Zero)) new_esEs(Pos(Succ(x0))) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_esEs(Neg(Succ(x0))) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_esEs(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (437) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (438) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(x0))), y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz16000))) -> False new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_esEs(Pos(Zero)) new_esEs(Pos(Succ(x0))) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_esEs(Neg(Succ(x0))) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_esEs(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (439) QReductionProof (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(Pos(Zero)) new_esEs(Pos(Succ(x0))) new_esEs(Neg(Succ(x0))) new_esEs(Neg(Zero)) ---------------------------------------- (440) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(x0))), y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz16000))) -> False new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (441) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Neg(Succ(x0))), y0, Neg(Succ(x0))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))),new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0)))) ---------------------------------------- (442) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz16000))) -> False new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primEqInt(Neg(Succ(vuz16000))) -> False The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (443) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (444) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz16000))) -> False new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (445) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(new_primEqInt(Pos(Succ(x0))), y0, Pos(Succ(x0))) at position [0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))),new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0)))) ---------------------------------------- (446) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) The TRS R consists of the following rules: new_primEqInt(Pos(Succ(vuz16000))) -> False new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (447) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (448) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primEqInt(Neg(Zero)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (449) QReductionProof (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_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) ---------------------------------------- (450) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (451) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (452) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (453) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, x2, x3) -> new_gcd0Gcd'0(x2, x3), new_gcd0Gcd'0(x4, x5) -> new_gcd0Gcd'(x5, new_primRemInt(x4, x5)) which results in the following constraint: (1) (new_gcd0Gcd'0(x2, x3)=new_gcd0Gcd'0(x4, x5) ==> new_gcd0Gcd'1(False, x2, x3)_>=_new_gcd0Gcd'0(x2, x3)) 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, x3)) For Pair new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) the following chains were created: *We consider the chain new_gcd0Gcd'0(x14, x15) -> new_gcd0Gcd'(x15, new_primRemInt(x14, x15)), new_gcd0Gcd'(x16, Neg(Succ(x17))) -> new_gcd0Gcd'1(False, x16, Neg(Succ(x17))) which results in the following constraint: (1) (new_gcd0Gcd'(x15, new_primRemInt(x14, x15))=new_gcd0Gcd'(x16, Neg(Succ(x17))) ==> new_gcd0Gcd'0(x14, x15)_>=_new_gcd0Gcd'(x15, new_primRemInt(x14, x15))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_primRemInt(x14, x15)=Neg(Succ(x17)) ==> new_gcd0Gcd'0(x14, x15)_>=_new_gcd0Gcd'(x15, new_primRemInt(x14, x15))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primRemInt(x14, x15)=Neg(Succ(x17)) which results in the following new constraints: (3) (new_error=Neg(Succ(x17)) ==> new_gcd0Gcd'0(Neg(x46), Neg(Zero))_>=_new_gcd0Gcd'(Neg(Zero), new_primRemInt(Neg(x46), Neg(Zero)))) (4) (Neg(new_primModNatS1(x48, x47))=Neg(Succ(x17)) ==> new_gcd0Gcd'0(Neg(x48), Pos(Succ(x47)))_>=_new_gcd0Gcd'(Pos(Succ(x47)), new_primRemInt(Neg(x48), Pos(Succ(x47))))) (5) (new_error=Neg(Succ(x17)) ==> new_gcd0Gcd'0(Pos(x49), Pos(Zero))_>=_new_gcd0Gcd'(Pos(Zero), new_primRemInt(Pos(x49), Pos(Zero)))) (6) (Neg(new_primModNatS1(x51, x50))=Neg(Succ(x17)) ==> new_gcd0Gcd'0(Neg(x51), Neg(Succ(x50)))_>=_new_gcd0Gcd'(Neg(Succ(x50)), new_primRemInt(Neg(x51), Neg(Succ(x50))))) (7) (new_error=Neg(Succ(x17)) ==> new_gcd0Gcd'0(Pos(x52), Neg(Zero))_>=_new_gcd0Gcd'(Neg(Zero), new_primRemInt(Pos(x52), Neg(Zero)))) (8) (new_error=Neg(Succ(x17)) ==> new_gcd0Gcd'0(Neg(x53), Pos(Zero))_>=_new_gcd0Gcd'(Pos(Zero), new_primRemInt(Neg(x53), Pos(Zero)))) We solved constraint (3) using rule (V) (with possible (I) afterwards).We simplified constraint (4) using rules (I), (II) which results in the following new constraint: (9) (new_primModNatS1(x48, x47)=Succ(x17) ==> new_gcd0Gcd'0(Neg(x48), Pos(Succ(x47)))_>=_new_gcd0Gcd'(Pos(Succ(x47)), new_primRemInt(Neg(x48), Pos(Succ(x47))))) We solved constraint (5) using rule (V) (with possible (I) afterwards).We simplified constraint (6) using rules (I), (II) which results in the following new constraint: (10) (new_primModNatS1(x51, x50)=Succ(x17) ==> new_gcd0Gcd'0(Neg(x51), Neg(Succ(x50)))_>=_new_gcd0Gcd'(Neg(Succ(x50)), new_primRemInt(Neg(x51), Neg(Succ(x50))))) We solved constraint (7) using rule (V) (with possible (I) afterwards).We solved constraint (8) using rule (V) (with possible (I) afterwards).We simplified constraint (9) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x48, x47)=Succ(x17) which results in the following new constraints: (11) (Succ(Zero)=Succ(x17) ==> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x54))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(x54))), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x54)))))) (12) (new_primModNatS1(new_primMinusNatS0(x56), Zero)=Succ(x17) ==> new_gcd0Gcd'0(Neg(Succ(Succ(x56))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'(Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x56))), Pos(Succ(Zero))))) (13) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x17) ==> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'(Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))))) (14) (new_primModNatS02(x58, x57, x58, x57)=Succ(x17) ==> new_gcd0Gcd'0(Neg(Succ(Succ(x58))), Pos(Succ(Succ(x57))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(x57))), new_primRemInt(Neg(Succ(Succ(x58))), Pos(Succ(Succ(x57)))))) We simplified constraint (11) using rules (I), (II), (IV) which results in the following new constraint: (15) (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x54))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(x54))), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x54)))))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (16) (new_gcd0Gcd'0(Neg(Succ(Succ(x56))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'(Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x56))), Pos(Succ(Zero))))) We simplified constraint (13) using rules (III), (IV), (VII) which results in the following new constraint: (17) (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'(Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))))) We simplified constraint (14) using rules (III), (IV), (VII) which results in the following new constraint: (18) (new_gcd0Gcd'0(Neg(Succ(Succ(x63))), Pos(Succ(Succ(x64))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(x64))), new_primRemInt(Neg(Succ(Succ(x63))), Pos(Succ(Succ(x64)))))) We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x51, x50)=Succ(x17) which results in the following new constraints: (19) (Succ(Zero)=Succ(x17) ==> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x65))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(x65))), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x65)))))) (20) (new_primModNatS1(new_primMinusNatS0(x67), Zero)=Succ(x17) ==> new_gcd0Gcd'0(Neg(Succ(Succ(x67))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'(Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x67))), Neg(Succ(Zero))))) (21) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x17) ==> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'(Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))))) (22) (new_primModNatS02(x69, x68, x69, x68)=Succ(x17) ==> new_gcd0Gcd'0(Neg(Succ(Succ(x69))), Neg(Succ(Succ(x68))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(x68))), new_primRemInt(Neg(Succ(Succ(x69))), Neg(Succ(Succ(x68)))))) We simplified constraint (19) using rules (I), (II), (IV) which results in the following new constraint: (23) (new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x65))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(x65))), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x65)))))) We simplified constraint (20) using rules (III), (IV), (VII) which results in the following new constraint: (24) (new_gcd0Gcd'0(Neg(Succ(Succ(x67))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'(Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x67))), Neg(Succ(Zero))))) We simplified constraint (21) using rules (III), (IV), (VII) which results in the following new constraint: (25) (new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'(Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))))) We simplified constraint (22) using rules (III), (IV), (VII) which results in the following new constraint: (26) (new_gcd0Gcd'0(Neg(Succ(Succ(x74))), Neg(Succ(Succ(x75))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(x75))), new_primRemInt(Neg(Succ(Succ(x74))), Neg(Succ(Succ(x75)))))) *We consider the chain new_gcd0Gcd'0(x18, x19) -> new_gcd0Gcd'(x19, new_primRemInt(x18, x19)), new_gcd0Gcd'(x20, Pos(Succ(x21))) -> new_gcd0Gcd'1(False, x20, Pos(Succ(x21))) which results in the following constraint: (1) (new_gcd0Gcd'(x19, new_primRemInt(x18, x19))=new_gcd0Gcd'(x20, Pos(Succ(x21))) ==> new_gcd0Gcd'0(x18, x19)_>=_new_gcd0Gcd'(x19, new_primRemInt(x18, x19))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_primRemInt(x18, x19)=Pos(Succ(x21)) ==> new_gcd0Gcd'0(x18, x19)_>=_new_gcd0Gcd'(x19, new_primRemInt(x18, x19))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primRemInt(x18, x19)=Pos(Succ(x21)) which results in the following new constraints: (3) (Pos(new_primModNatS1(x77, x76))=Pos(Succ(x21)) ==> new_gcd0Gcd'0(Pos(x77), Neg(Succ(x76)))_>=_new_gcd0Gcd'(Neg(Succ(x76)), new_primRemInt(Pos(x77), Neg(Succ(x76))))) (4) (Pos(new_primModNatS1(x79, x78))=Pos(Succ(x21)) ==> new_gcd0Gcd'0(Pos(x79), Pos(Succ(x78)))_>=_new_gcd0Gcd'(Pos(Succ(x78)), new_primRemInt(Pos(x79), Pos(Succ(x78))))) (5) (new_error=Pos(Succ(x21)) ==> new_gcd0Gcd'0(Neg(x80), Neg(Zero))_>=_new_gcd0Gcd'(Neg(Zero), new_primRemInt(Neg(x80), Neg(Zero)))) (6) (new_error=Pos(Succ(x21)) ==> new_gcd0Gcd'0(Pos(x83), Pos(Zero))_>=_new_gcd0Gcd'(Pos(Zero), new_primRemInt(Pos(x83), Pos(Zero)))) (7) (new_error=Pos(Succ(x21)) ==> new_gcd0Gcd'0(Pos(x86), Neg(Zero))_>=_new_gcd0Gcd'(Neg(Zero), new_primRemInt(Pos(x86), Neg(Zero)))) (8) (new_error=Pos(Succ(x21)) ==> new_gcd0Gcd'0(Neg(x87), Pos(Zero))_>=_new_gcd0Gcd'(Pos(Zero), new_primRemInt(Neg(x87), Pos(Zero)))) We simplified constraint (3) using rules (I), (II) which results in the following new constraint: (9) (new_primModNatS1(x77, x76)=Succ(x21) ==> new_gcd0Gcd'0(Pos(x77), Neg(Succ(x76)))_>=_new_gcd0Gcd'(Neg(Succ(x76)), new_primRemInt(Pos(x77), Neg(Succ(x76))))) We simplified constraint (4) using rules (I), (II) which results in the following new constraint: (10) (new_primModNatS1(x79, x78)=Succ(x21) ==> new_gcd0Gcd'0(Pos(x79), Pos(Succ(x78)))_>=_new_gcd0Gcd'(Pos(Succ(x78)), new_primRemInt(Pos(x79), Pos(Succ(x78))))) We solved constraint (5) using rule (V) (with possible (I) afterwards).We solved constraint (6) using rule (V) (with possible (I) afterwards).We solved constraint (7) using rule (V) (with possible (I) afterwards).We solved constraint (8) using rule (V) (with possible (I) afterwards).We simplified constraint (9) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x77, x76)=Succ(x21) which results in the following new constraints: (11) (Succ(Zero)=Succ(x21) ==> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x88))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(x88))), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x88)))))) (12) (new_primModNatS1(new_primMinusNatS0(x90), Zero)=Succ(x21) ==> new_gcd0Gcd'0(Pos(Succ(Succ(x90))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'(Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x90))), Neg(Succ(Zero))))) (13) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x21) ==> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'(Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))))) (14) (new_primModNatS02(x92, x91, x92, x91)=Succ(x21) ==> new_gcd0Gcd'0(Pos(Succ(Succ(x92))), Neg(Succ(Succ(x91))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(x91))), new_primRemInt(Pos(Succ(Succ(x92))), Neg(Succ(Succ(x91)))))) We simplified constraint (11) using rules (I), (II), (IV) which results in the following new constraint: (15) (new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x88))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(x88))), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x88)))))) We simplified constraint (12) using rules (III), (IV), (VII) which results in the following new constraint: (16) (new_gcd0Gcd'0(Pos(Succ(Succ(x90))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'(Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x90))), Neg(Succ(Zero))))) We simplified constraint (13) using rules (III), (IV), (VII) which results in the following new constraint: (17) (new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'(Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))))) We simplified constraint (14) using rules (III), (IV), (VII) which results in the following new constraint: (18) (new_gcd0Gcd'0(Pos(Succ(Succ(x97))), Neg(Succ(Succ(x98))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(x98))), new_primRemInt(Pos(Succ(Succ(x97))), Neg(Succ(Succ(x98)))))) We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x79, x78)=Succ(x21) which results in the following new constraints: (19) (Succ(Zero)=Succ(x21) ==> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x99))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(x99))), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x99)))))) (20) (new_primModNatS1(new_primMinusNatS0(x101), Zero)=Succ(x21) ==> new_gcd0Gcd'0(Pos(Succ(Succ(x101))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'(Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x101))), Pos(Succ(Zero))))) (21) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x21) ==> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'(Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))))) (22) (new_primModNatS02(x103, x102, x103, x102)=Succ(x21) ==> new_gcd0Gcd'0(Pos(Succ(Succ(x103))), Pos(Succ(Succ(x102))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(x102))), new_primRemInt(Pos(Succ(Succ(x103))), Pos(Succ(Succ(x102)))))) We simplified constraint (19) using rules (I), (II), (IV) which results in the following new constraint: (23) (new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x99))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(x99))), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x99)))))) We simplified constraint (20) using rules (III), (IV), (VII) which results in the following new constraint: (24) (new_gcd0Gcd'0(Pos(Succ(Succ(x101))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'(Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x101))), Pos(Succ(Zero))))) We simplified constraint (21) using rules (III), (IV), (VII) which results in the following new constraint: (25) (new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'(Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))))) We simplified constraint (22) using rules (III), (IV), (VII) which results in the following new constraint: (26) (new_gcd0Gcd'0(Pos(Succ(Succ(x108))), Pos(Succ(Succ(x109))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(x109))), new_primRemInt(Pos(Succ(Succ(x108))), Pos(Succ(Succ(x109)))))) For Pair new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) the following chains were created: *We consider the chain new_gcd0Gcd'(x22, Neg(Succ(x23))) -> new_gcd0Gcd'1(False, x22, Neg(Succ(x23))), new_gcd0Gcd'1(False, x24, x25) -> new_gcd0Gcd'0(x24, x25) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x22, Neg(Succ(x23)))=new_gcd0Gcd'1(False, x24, x25) ==> new_gcd0Gcd'(x22, Neg(Succ(x23)))_>=_new_gcd0Gcd'1(False, x22, Neg(Succ(x23)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'(x22, Neg(Succ(x23)))_>=_new_gcd0Gcd'1(False, x22, Neg(Succ(x23)))) For Pair new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) the following chains were created: *We consider the chain new_gcd0Gcd'(x32, Pos(Succ(x33))) -> new_gcd0Gcd'1(False, x32, Pos(Succ(x33))), new_gcd0Gcd'1(False, x34, x35) -> new_gcd0Gcd'0(x34, x35) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x32, Pos(Succ(x33)))=new_gcd0Gcd'1(False, x34, x35) ==> new_gcd0Gcd'(x32, Pos(Succ(x33)))_>=_new_gcd0Gcd'1(False, x32, Pos(Succ(x33)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'(x32, Pos(Succ(x33)))_>=_new_gcd0Gcd'1(False, x32, Pos(Succ(x33)))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) *(new_gcd0Gcd'1(False, x2, x3)_>=_new_gcd0Gcd'0(x2, x3)) *new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) *(new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x54))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(x54))), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Succ(x54)))))) *(new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x65))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(x65))), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Succ(x65)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(x56))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'(Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x56))), Pos(Succ(Zero))))) *(new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'(Pos(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Pos(Succ(Zero))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(x63))), Pos(Succ(Succ(x64))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(x64))), new_primRemInt(Neg(Succ(Succ(x63))), Pos(Succ(Succ(x64)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(x67))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'(Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Succ(x67))), Neg(Succ(Zero))))) *(new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'(Neg(Succ(Zero)), new_primRemInt(Neg(Succ(Zero)), Neg(Succ(Zero))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(x74))), Neg(Succ(Succ(x75))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(x75))), new_primRemInt(Neg(Succ(Succ(x74))), Neg(Succ(Succ(x75)))))) *(new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x88))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(x88))), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Succ(x88)))))) *(new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x99))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(x99))), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Succ(x99)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(x90))), Neg(Succ(Zero)))_>=_new_gcd0Gcd'(Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x90))), Neg(Succ(Zero))))) *(new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero)))_>=_new_gcd0Gcd'(Neg(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Neg(Succ(Zero))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(x97))), Neg(Succ(Succ(x98))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(x98))), new_primRemInt(Pos(Succ(Succ(x97))), Neg(Succ(Succ(x98)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(x101))), Pos(Succ(Zero)))_>=_new_gcd0Gcd'(Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Succ(x101))), Pos(Succ(Zero))))) *(new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero)))_>=_new_gcd0Gcd'(Pos(Succ(Zero)), new_primRemInt(Pos(Succ(Zero)), Pos(Succ(Zero))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(x108))), Pos(Succ(Succ(x109))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(x109))), new_primRemInt(Pos(Succ(Succ(x108))), Pos(Succ(Succ(x109)))))) *new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) *(new_gcd0Gcd'(x22, Neg(Succ(x23)))_>=_new_gcd0Gcd'1(False, x22, Neg(Succ(x23)))) *new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) *(new_gcd0Gcd'(x32, Pos(Succ(x33)))_>=_new_gcd0Gcd'1(False, x32, Pos(Succ(x33)))) 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. ---------------------------------------- (454) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (455) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(vuz44, vuz43) -> new_gcd0Gcd'(vuz43, new_primRemInt(vuz44, vuz43)) at position [1] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))),new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1)))) (new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))),new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1)))) (new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'(Neg(Zero), new_error),new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'(Neg(Zero), new_error)) (new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))),new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1)))) (new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'(Pos(Zero), new_error),new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'(Pos(Zero), new_error)) (new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))),new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1)))) (new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'(Neg(Zero), new_error),new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'(Neg(Zero), new_error)) (new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'(Pos(Zero), new_error),new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'(Pos(Zero), new_error)) ---------------------------------------- (456) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Neg(x0), Neg(Zero)) -> new_gcd0Gcd'(Neg(Zero), new_error) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(x0), Pos(Zero)) -> new_gcd0Gcd'(Pos(Zero), new_error) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(x0), Neg(Zero)) -> new_gcd0Gcd'(Neg(Zero), new_error) new_gcd0Gcd'0(Neg(x0), Pos(Zero)) -> new_gcd0Gcd'(Pos(Zero), new_error) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (457) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 4 less nodes. ---------------------------------------- (458) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primRemInt(Pos(vuz440), Neg(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Succ(vuz4300))) -> Pos(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Neg(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz440), Neg(Succ(vuz4300))) -> Neg(new_primModNatS1(vuz440, vuz4300)) new_primRemInt(Pos(vuz440), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz440), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS0(vuz22000) -> Succ(vuz22000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (459) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (460) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primRemInt(Neg(x0), Neg(Zero)) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primModNatS02(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (461) QReductionProof (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(Neg(x0), Neg(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(Pos(x0), Pos(Succ(x1))) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) ---------------------------------------- (462) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (463) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Pos(new_primModNatS1(x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))),new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero)))) (new_gcd0Gcd'0(Pos(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'(Neg(Succ(x0)), Pos(Zero)),new_gcd0Gcd'0(Pos(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'(Neg(Succ(x0)), Pos(Zero))) (new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1)))) ---------------------------------------- (464) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'(Neg(Succ(x0)), Pos(Zero)) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (465) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (466) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (467) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (468) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (469) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (470) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (471) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (472) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (473) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Pos(new_primModNatS1(x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))),new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero)))) (new_gcd0Gcd'0(Pos(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'(Pos(Succ(x0)), Pos(Zero)),new_gcd0Gcd'0(Pos(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'(Pos(Succ(x0)), Pos(Zero))) (new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1)))) ---------------------------------------- (474) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'(Pos(Succ(x0)), Pos(Zero)) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (475) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (476) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (477) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (478) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (479) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (480) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (481) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (482) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (483) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(x0), Pos(Succ(x1))) -> new_gcd0Gcd'(Pos(Succ(x1)), Neg(new_primModNatS1(x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero)))) (new_gcd0Gcd'0(Neg(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'(Pos(Succ(x0)), Neg(Zero)),new_gcd0Gcd'0(Neg(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'(Pos(Succ(x0)), Neg(Zero))) (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1)))) ---------------------------------------- (484) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Zero), Pos(Succ(x0))) -> new_gcd0Gcd'(Pos(Succ(x0)), Neg(Zero)) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (485) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (486) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (487) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (488) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (489) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (490) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (491) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (492) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (493) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(x0), Neg(Succ(x1))) -> new_gcd0Gcd'(Neg(Succ(x1)), Neg(new_primModNatS1(x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero)))) (new_gcd0Gcd'0(Neg(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'(Neg(Succ(x0)), Neg(Zero)),new_gcd0Gcd'0(Neg(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'(Neg(Succ(x0)), Neg(Zero))) (new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1)))) ---------------------------------------- (494) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Zero), Neg(Succ(x0))) -> new_gcd0Gcd'(Neg(Succ(x0)), Neg(Zero)) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (495) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (496) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (497) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (498) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (499) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (500) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (501) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (502) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (503) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero)))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero)))) (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (504) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (505) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (506) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (507) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (508) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (509) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (510) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (511) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))))) ---------------------------------------- (512) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (513) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (514) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (515) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Zero, Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Zero, Succ(Zero))))) ---------------------------------------- (516) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Zero, Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (517) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (518) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (519) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (520) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (521) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (522) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (523) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (524) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (525) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (526) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (527) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS02(x0, x1, x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero)))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero)))) (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero))))) ---------------------------------------- (528) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (529) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x2), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (530) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (531) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (532) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (533) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (534) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (535) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))))) ---------------------------------------- (536) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (537) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (538) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (539) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Zero, Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Zero, Succ(Zero))))) ---------------------------------------- (540) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Zero, Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (541) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (542) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (543) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (544) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (545) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (546) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (547) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (548) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (549) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (550) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (551) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero)))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero)))) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (552) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (553) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (554) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (555) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (556) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (557) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (558) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (559) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))))) ---------------------------------------- (560) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (561) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (562) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (563) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Zero, Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Zero, Succ(Zero))))) ---------------------------------------- (564) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Zero, Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (565) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (566) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (567) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (568) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (569) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (570) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (571) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (572) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (573) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (574) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (575) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS02(x0, x1, x0, x1))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero)))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3)))) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero)))) (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero))))) ---------------------------------------- (576) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (577) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Succ(x2), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (578) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (579) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS01(Zero, Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero))))) ---------------------------------------- (580) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (581) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) ---------------------------------------- (582) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (583) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero))))) ---------------------------------------- (584) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (585) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero))))) ---------------------------------------- (586) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (587) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Zero)))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Zero, Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Zero, Succ(Zero))))) ---------------------------------------- (588) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Zero, Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (589) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (590) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (591) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (592) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (593) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (594) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (595) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (596) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (597) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (598) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (599) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(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'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(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))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (600) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (601) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(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'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (602) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (603) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(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'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (604) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (605) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (606) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (607) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (608) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (609) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [1,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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (610) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (611) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))))) ---------------------------------------- (612) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (613) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) at position [1,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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (614) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (615) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Zero, Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))))) ---------------------------------------- (616) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (617) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (618) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (619) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero)))) ---------------------------------------- (620) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (621) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (622) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (623) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (624) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (625) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (626) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (627) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (628) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (629) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(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'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero)))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero))))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (630) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (631) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(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'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (632) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (633) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS01(Succ(Zero), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (634) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (635) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (636) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (637) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (638) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (639) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [1,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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (640) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (641) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))))) ---------------------------------------- (642) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (643) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) at position [1,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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (644) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (645) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Zero, Succ(Succ(Zero))))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Zero, Succ(Succ(Zero)))))) ---------------------------------------- (646) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Zero, Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (647) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (648) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (649) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero)))) ---------------------------------------- (650) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (651) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (652) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (653) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS1, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (654) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (655) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (656) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (657) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (658) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (659) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(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'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(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))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (660) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (661) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(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'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (662) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (663) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (664) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (665) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (666) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (667) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (668) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (669) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [1,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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (670) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (671) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))))) ---------------------------------------- (672) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (673) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) at position [1,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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (674) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (675) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Zero, Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))))) ---------------------------------------- (676) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Zero, Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) 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'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (679) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero)))) ---------------------------------------- (680) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (681) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (682) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (683) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (684) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (685) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (686) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (687) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (688) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS02(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (689) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(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'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero)))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero))))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero)))))) ---------------------------------------- (690) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Succ(x2)), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (691) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(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'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (692) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (693) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS01(Succ(Zero), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero)))))) ---------------------------------------- (694) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (695) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,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'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (696) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (697) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(Zero)), Succ(Succ(Zero))), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero)))))) ---------------------------------------- (698) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (699) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) at position [1,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'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero)))))) ---------------------------------------- (700) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (701) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(Zero), Succ(Zero)), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero)))))) ---------------------------------------- (702) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (703) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) at position [1,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'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero)))))) ---------------------------------------- (704) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (705) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(new_primMinusNatS2(Zero, Zero), Succ(Succ(Zero))))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Zero, Succ(Succ(Zero))))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Zero, Succ(Succ(Zero)))))) ---------------------------------------- (706) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Zero, Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (707) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (708) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(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(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (709) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS1(Succ(x2), Succ(Zero)))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero)))) ---------------------------------------- (710) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (711) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x0)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) at position [1,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero)))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero)))) ---------------------------------------- (712) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (713) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS1, Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero)))) ---------------------------------------- (714) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Zero, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (715) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (716) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (717) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(new_primMinusNatS0(x0), Zero))) at position [1,0,0] we obtained the following new rules [LPAR04]: (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero)))) ---------------------------------------- (718) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (719) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Pos(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(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) = 1 POL(Neg(x_1)) = 1 POL(Pos(x_1)) = x_1 POL(Succ(x_1)) = 1 POL(Zero) = 0 POL(new_gcd0Gcd'(x_1, x_2)) = x_2 POL(new_gcd0Gcd'0(x_1, x_2)) = 1 POL(new_gcd0Gcd'1(x_1, x_2, x_3)) = x_1 POL(new_primMinusNatS0(x_1)) = 1 + x_1 POL(new_primMinusNatS1) = 1 POL(new_primMinusNatS2(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 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Zero, vuz4300) -> Zero ---------------------------------------- (720) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(Neg(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (721) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Zero))) -> new_gcd0Gcd'(Pos(Succ(Zero)), Neg(new_primModNatS1(Succ(x0), Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Zero))) -> new_gcd0Gcd'(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) = 1 POL(Neg(x_1)) = 1 + x_1 POL(Pos(x_1)) = 1 + x_1 POL(Succ(x_1)) = 1 POL(Zero) = 0 POL(new_gcd0Gcd'(x_1, x_2)) = x_2 POL(new_gcd0Gcd'0(x_1, x_2)) = x_2 POL(new_gcd0Gcd'1(x_1, x_2, x_3)) = x_3 POL(new_primMinusNatS0(x_1)) = 1 + x_1 POL(new_primMinusNatS1) = 1 POL(new_primMinusNatS2(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 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Zero, vuz4300) -> Zero ---------------------------------------- (722) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (723) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (724) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (725) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(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) = 2 POL(Neg(x_1)) = 0 POL(Pos(x_1)) = 2*x_1 POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 0 POL(new_gcd0Gcd'(x_1, x_2)) = 2*x_1 + 2*x_2 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_primMinusNatS2(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(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primModNatS1(Zero, vuz4300) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) ---------------------------------------- (726) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (727) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (728) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (729) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) the following chains were created: *We consider the chain new_gcd0Gcd'(x2, Pos(Succ(x3))) -> new_gcd0Gcd'1(False, x2, Pos(Succ(x3))), new_gcd0Gcd'1(False, x4, x5) -> new_gcd0Gcd'0(x4, x5) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x2, Pos(Succ(x3)))=new_gcd0Gcd'1(False, x4, x5) ==> new_gcd0Gcd'(x2, Pos(Succ(x3)))_>=_new_gcd0Gcd'1(False, x2, Pos(Succ(x3)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'(x2, Pos(Succ(x3)))_>=_new_gcd0Gcd'1(False, x2, Pos(Succ(x3)))) For Pair new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) the following chains were created: *We consider the chain new_gcd0Gcd'1(False, x56, x57) -> new_gcd0Gcd'0(x56, x57), new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x58)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x58))), Pos(Succ(Zero))) which results in the following constraint: (1) (new_gcd0Gcd'0(x56, x57)=new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x58)))) ==> new_gcd0Gcd'1(False, x56, x57)_>=_new_gcd0Gcd'0(x56, x57)) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x58))))_>=_new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x58))))) *We consider the chain new_gcd0Gcd'1(False, x59, x60) -> new_gcd0Gcd'0(x59, x60), new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x61)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x61))), Pos(Succ(Zero))) which results in the following constraint: (1) (new_gcd0Gcd'0(x59, x60)=new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x61)))) ==> new_gcd0Gcd'1(False, x59, x60)_>=_new_gcd0Gcd'0(x59, x60)) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x61))))_>=_new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x61))))) *We consider the chain new_gcd0Gcd'1(False, x62, x63) -> new_gcd0Gcd'0(x62, x63), new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x64)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x64))), Neg(Succ(Zero))) which results in the following constraint: (1) (new_gcd0Gcd'0(x62, x63)=new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x64)))) ==> new_gcd0Gcd'1(False, x62, x63)_>=_new_gcd0Gcd'0(x62, x63)) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x64))))_>=_new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x64))))) *We consider the chain new_gcd0Gcd'1(False, x67, x68) -> new_gcd0Gcd'0(x67, x68), new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x69)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x69))), Neg(Succ(Zero))) which results in the following constraint: (1) (new_gcd0Gcd'0(x67, x68)=new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x69)))) ==> new_gcd0Gcd'1(False, x67, x68)_>=_new_gcd0Gcd'0(x67, x68)) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x69))))_>=_new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x69))))) *We consider the chain new_gcd0Gcd'1(False, x70, x71) -> new_gcd0Gcd'0(x70, x71), new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x72))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x72)))), Pos(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_gcd0Gcd'0(x70, x71)=new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x72))))) ==> new_gcd0Gcd'1(False, x70, x71)_>=_new_gcd0Gcd'0(x70, x71)) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x72)))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x72)))))) *We consider the chain new_gcd0Gcd'1(False, x73, x74) -> new_gcd0Gcd'0(x73, x74), new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x75))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x75)))), Pos(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_gcd0Gcd'0(x73, x74)=new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x75))))) ==> new_gcd0Gcd'1(False, x73, x74)_>=_new_gcd0Gcd'0(x73, x74)) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x75)))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x75)))))) *We consider the chain new_gcd0Gcd'1(False, x76, x77) -> new_gcd0Gcd'0(x76, x77), new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x78))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x78)))), Neg(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_gcd0Gcd'0(x76, x77)=new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x78))))) ==> new_gcd0Gcd'1(False, x76, x77)_>=_new_gcd0Gcd'0(x76, x77)) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x78)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x78)))))) *We consider the chain new_gcd0Gcd'1(False, x79, x80) -> new_gcd0Gcd'0(x79, x80), new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x81))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x81)))), Neg(Succ(Succ(Zero)))) which results in the following constraint: (1) (new_gcd0Gcd'0(x79, x80)=new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x81))))) ==> new_gcd0Gcd'1(False, x79, x80)_>=_new_gcd0Gcd'0(x79, x80)) We simplified constraint (1) using rules (I), (II), (III) which results in the following new constraint: (2) (new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x81)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x81)))))) *We consider the chain new_gcd0Gcd'1(False, x82, x83) -> new_gcd0Gcd'0(x82, x83), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x84))))), Neg(Succ(Succ(Succ(Succ(x85)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x85))))), Pos(new_primModNatS02(Succ(Succ(x84)), Succ(Succ(x85)), x84, x85))) which results in the following constraint: (1) (new_gcd0Gcd'0(x82, x83)=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x84))))), Neg(Succ(Succ(Succ(Succ(x85)))))) ==> new_gcd0Gcd'1(False, x82, x83)_>=_new_gcd0Gcd'0(x82, x83)) 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(x84))))), Neg(Succ(Succ(Succ(Succ(x85))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x84))))), Neg(Succ(Succ(Succ(Succ(x85))))))) *We consider the chain new_gcd0Gcd'1(False, x86, x87) -> new_gcd0Gcd'0(x86, x87), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x88)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x88))))), Pos(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'0(x86, x87)=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x88)))))) ==> new_gcd0Gcd'1(False, x86, x87)_>=_new_gcd0Gcd'0(x86, x87)) 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(Zero)))), Neg(Succ(Succ(Succ(Succ(x88))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x88))))))) *We consider the chain new_gcd0Gcd'1(False, x89, x90) -> new_gcd0Gcd'0(x89, x90), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x91))))), Pos(Succ(Succ(Succ(Succ(x92)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x92))))), Pos(new_primModNatS02(Succ(Succ(x91)), Succ(Succ(x92)), x91, x92))) which results in the following constraint: (1) (new_gcd0Gcd'0(x89, x90)=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x91))))), Pos(Succ(Succ(Succ(Succ(x92)))))) ==> new_gcd0Gcd'1(False, x89, x90)_>=_new_gcd0Gcd'0(x89, x90)) 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(x91))))), Pos(Succ(Succ(Succ(Succ(x92))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x91))))), Pos(Succ(Succ(Succ(Succ(x92))))))) *We consider the chain new_gcd0Gcd'1(False, x93, x94) -> new_gcd0Gcd'0(x93, x94), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x95)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x95))))), Pos(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'0(x93, x94)=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x95)))))) ==> new_gcd0Gcd'1(False, x93, x94)_>=_new_gcd0Gcd'0(x93, x94)) 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(Zero)))), Pos(Succ(Succ(Succ(Succ(x95))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x95))))))) *We consider the chain new_gcd0Gcd'1(False, x96, x97) -> new_gcd0Gcd'0(x96, x97), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x98))))), Pos(Succ(Succ(Succ(Succ(x99)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x99))))), Neg(new_primModNatS02(Succ(Succ(x98)), Succ(Succ(x99)), x98, x99))) which results in the following constraint: (1) (new_gcd0Gcd'0(x96, x97)=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x98))))), Pos(Succ(Succ(Succ(Succ(x99)))))) ==> new_gcd0Gcd'1(False, x96, x97)_>=_new_gcd0Gcd'0(x96, x97)) 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(x98))))), Pos(Succ(Succ(Succ(Succ(x99))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x98))))), Pos(Succ(Succ(Succ(Succ(x99))))))) *We consider the chain new_gcd0Gcd'1(False, x100, x101) -> new_gcd0Gcd'0(x100, x101), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x102)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x102))))), Neg(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'0(x100, x101)=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x102)))))) ==> new_gcd0Gcd'1(False, x100, x101)_>=_new_gcd0Gcd'0(x100, x101)) 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(Zero)))), Pos(Succ(Succ(Succ(Succ(x102))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x102))))))) *We consider the chain new_gcd0Gcd'1(False, x103, x104) -> new_gcd0Gcd'0(x103, x104), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x105))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x105), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'0(x103, x104)=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x105))))), Pos(Succ(Succ(Succ(Zero))))) ==> new_gcd0Gcd'1(False, x103, x104)_>=_new_gcd0Gcd'0(x103, x104)) 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(x105))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x105))))), Pos(Succ(Succ(Succ(Zero)))))) *We consider the chain new_gcd0Gcd'1(False, x106, x107) -> new_gcd0Gcd'0(x106, x107), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) which results in the following constraint: (1) (new_gcd0Gcd'0(x106, x107)=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) ==> new_gcd0Gcd'1(False, x106, x107)_>=_new_gcd0Gcd'0(x106, x107)) 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(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))) *We consider the chain new_gcd0Gcd'1(False, x108, x109) -> new_gcd0Gcd'0(x108, x109), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x110))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x110, Zero, x110, Zero))) which results in the following constraint: (1) (new_gcd0Gcd'0(x108, x109)=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x110))))), Pos(Succ(Succ(Zero)))) ==> new_gcd0Gcd'1(False, x108, x109)_>=_new_gcd0Gcd'0(x108, x109)) 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(x110))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x110))))), Pos(Succ(Succ(Zero))))) *We consider the chain new_gcd0Gcd'1(False, x111, x112) -> new_gcd0Gcd'0(x111, x112), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x113))))), Neg(Succ(Succ(Succ(Succ(x114)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x114))))), Neg(new_primModNatS02(Succ(Succ(x113)), Succ(Succ(x114)), x113, x114))) which results in the following constraint: (1) (new_gcd0Gcd'0(x111, x112)=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x113))))), Neg(Succ(Succ(Succ(Succ(x114)))))) ==> new_gcd0Gcd'1(False, x111, x112)_>=_new_gcd0Gcd'0(x111, x112)) 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(x113))))), Neg(Succ(Succ(Succ(Succ(x114))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x113))))), Neg(Succ(Succ(Succ(Succ(x114))))))) *We consider the chain new_gcd0Gcd'1(False, x115, x116) -> new_gcd0Gcd'0(x115, x116), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x117)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x117))))), Neg(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'0(x115, x116)=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x117)))))) ==> new_gcd0Gcd'1(False, x115, x116)_>=_new_gcd0Gcd'0(x115, x116)) 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(Zero)))), Neg(Succ(Succ(Succ(Succ(x117))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x117))))))) *We consider the chain new_gcd0Gcd'1(False, x118, x119) -> new_gcd0Gcd'0(x118, x119), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x120))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x120), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'0(x118, x119)=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x120))))), Neg(Succ(Succ(Succ(Zero))))) ==> new_gcd0Gcd'1(False, x118, x119)_>=_new_gcd0Gcd'0(x118, x119)) 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(x120))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x120))))), Neg(Succ(Succ(Succ(Zero)))))) *We consider the chain new_gcd0Gcd'1(False, x121, x122) -> new_gcd0Gcd'0(x121, x122), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) which results in the following constraint: (1) (new_gcd0Gcd'0(x121, x122)=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) ==> new_gcd0Gcd'1(False, x121, x122)_>=_new_gcd0Gcd'0(x121, x122)) 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(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))) *We consider the chain new_gcd0Gcd'1(False, x123, x124) -> new_gcd0Gcd'0(x123, x124), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x125))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x125, Zero, x125, Zero))) which results in the following constraint: (1) (new_gcd0Gcd'0(x123, x124)=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x125))))), Neg(Succ(Succ(Zero)))) ==> new_gcd0Gcd'1(False, x123, x124)_>=_new_gcd0Gcd'0(x123, x124)) 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(x125))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x125))))), Neg(Succ(Succ(Zero))))) For Pair new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x126)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x126))), Pos(Succ(Zero))), new_gcd0Gcd'(x127, Pos(Succ(x128))) -> new_gcd0Gcd'1(False, x127, Pos(Succ(x128))) which results in the following constraint: (1) (new_gcd0Gcd'(Neg(Succ(Succ(x126))), Pos(Succ(Zero)))=new_gcd0Gcd'(x127, Pos(Succ(x128))) ==> new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x126))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(x126))), Pos(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x126))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(x126))), Pos(Succ(Zero)))) For Pair new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x153)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x153))), Pos(Succ(Zero))), new_gcd0Gcd'(x154, Pos(Succ(x155))) -> new_gcd0Gcd'1(False, x154, Pos(Succ(x155))) which results in the following constraint: (1) (new_gcd0Gcd'(Pos(Succ(Succ(x153))), Pos(Succ(Zero)))=new_gcd0Gcd'(x154, Pos(Succ(x155))) ==> new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x153))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(x153))), Pos(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x153))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(x153))), Pos(Succ(Zero)))) For Pair new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x185)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x185))), Neg(Succ(Zero))), new_gcd0Gcd'(x186, Neg(Succ(x187))) -> new_gcd0Gcd'1(False, x186, Neg(Succ(x187))) which results in the following constraint: (1) (new_gcd0Gcd'(Pos(Succ(Succ(x185))), Neg(Succ(Zero)))=new_gcd0Gcd'(x186, Neg(Succ(x187))) ==> new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x185))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(x185))), Neg(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x185))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(x185))), Neg(Succ(Zero)))) For Pair new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) the following chains were created: *We consider the chain new_gcd0Gcd'(x209, Neg(Succ(x210))) -> new_gcd0Gcd'1(False, x209, Neg(Succ(x210))), new_gcd0Gcd'1(False, x211, x212) -> new_gcd0Gcd'0(x211, x212) which results in the following constraint: (1) (new_gcd0Gcd'1(False, x209, Neg(Succ(x210)))=new_gcd0Gcd'1(False, x211, x212) ==> new_gcd0Gcd'(x209, Neg(Succ(x210)))_>=_new_gcd0Gcd'1(False, x209, Neg(Succ(x210)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'(x209, Neg(Succ(x210)))_>=_new_gcd0Gcd'1(False, x209, Neg(Succ(x210)))) For Pair new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x264)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x264))), Neg(Succ(Zero))), new_gcd0Gcd'(x265, Neg(Succ(x266))) -> new_gcd0Gcd'1(False, x265, Neg(Succ(x266))) which results in the following constraint: (1) (new_gcd0Gcd'(Neg(Succ(Succ(x264))), Neg(Succ(Zero)))=new_gcd0Gcd'(x265, Neg(Succ(x266))) ==> new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x264))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(x264))), Neg(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x264))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(x264))), Neg(Succ(Zero)))) For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(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(x286))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x286)))), Pos(Succ(Succ(Zero)))), new_gcd0Gcd'(x287, Pos(Succ(x288))) -> new_gcd0Gcd'1(False, x287, Pos(Succ(x288))) which results in the following constraint: (1) (new_gcd0Gcd'(Neg(Succ(Succ(Succ(x286)))), Pos(Succ(Succ(Zero))))=new_gcd0Gcd'(x287, Pos(Succ(x288))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x286)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(x286)))), 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(x286)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(x286)))), Pos(Succ(Succ(Zero))))) For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x313))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x313)))), Pos(Succ(Succ(Zero)))), new_gcd0Gcd'(x314, Pos(Succ(x315))) -> new_gcd0Gcd'1(False, x314, Pos(Succ(x315))) which results in the following constraint: (1) (new_gcd0Gcd'(Pos(Succ(Succ(Succ(x313)))), Pos(Succ(Succ(Zero))))=new_gcd0Gcd'(x314, Pos(Succ(x315))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x313)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(x313)))), 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))), Pos(Succ(Succ(Succ(x313)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(x313)))), Pos(Succ(Succ(Zero))))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(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(x345))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x345)))), Neg(Succ(Succ(Zero)))), new_gcd0Gcd'(x346, Neg(Succ(x347))) -> new_gcd0Gcd'1(False, x346, Neg(Succ(x347))) which results in the following constraint: (1) (new_gcd0Gcd'(Pos(Succ(Succ(Succ(x345)))), Neg(Succ(Succ(Zero))))=new_gcd0Gcd'(x346, Neg(Succ(x347))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x345)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(x345)))), 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(x345)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(x345)))), Neg(Succ(Succ(Zero))))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x372))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x372)))), Neg(Succ(Succ(Zero)))), new_gcd0Gcd'(x373, Neg(Succ(x374))) -> new_gcd0Gcd'1(False, x373, Neg(Succ(x374))) which results in the following constraint: (1) (new_gcd0Gcd'(Neg(Succ(Succ(Succ(x372)))), Neg(Succ(Succ(Zero))))=new_gcd0Gcd'(x373, Neg(Succ(x374))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x372)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(x372)))), 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))), Neg(Succ(Succ(Succ(x372)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(x372)))), Neg(Succ(Succ(Zero))))) For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(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'0(Pos(Succ(Succ(Succ(Succ(x394))))), Neg(Succ(Succ(Succ(Succ(x395)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x395))))), Pos(new_primModNatS02(Succ(Succ(x394)), Succ(Succ(x395)), x394, x395))), new_gcd0Gcd'(x396, Pos(Succ(x397))) -> new_gcd0Gcd'1(False, x396, Pos(Succ(x397))) which results in the following constraint: (1) (new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x395))))), Pos(new_primModNatS02(Succ(Succ(x394)), Succ(Succ(x395)), x394, x395)))=new_gcd0Gcd'(x396, Pos(Succ(x397))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x394))))), Neg(Succ(Succ(Succ(Succ(x395))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x395))))), Pos(new_primModNatS02(Succ(Succ(x394)), Succ(Succ(x395)), x394, x395)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(Succ(x394))=x822 & Succ(Succ(x395))=x823 & new_primModNatS02(x822, x823, x394, x395)=Succ(x397) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x394))))), Neg(Succ(Succ(Succ(Succ(x395))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x395))))), Pos(new_primModNatS02(Succ(Succ(x394)), Succ(Succ(x395)), x394, x395)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x822, x823, x394, x395)=Succ(x397) which results in the following new constraints: (3) (new_primModNatS01(x826, x825)=Succ(x397) & Succ(Succ(Succ(x824)))=x826 & Succ(Succ(Zero))=x825 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x824)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x824))), Succ(Succ(Zero)), Succ(x824), Zero)))) (4) (new_primModNatS02(x830, x829, x828, x827)=Succ(x397) & Succ(Succ(Succ(x828)))=x830 & Succ(Succ(Succ(x827)))=x829 & (\/x831:new_primModNatS02(x830, x829, x828, x827)=Succ(x831) & Succ(Succ(x828))=x830 & Succ(Succ(x827))=x829 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x828))))), Neg(Succ(Succ(Succ(Succ(x827))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x827))))), Pos(new_primModNatS02(Succ(Succ(x828)), Succ(Succ(x827)), x828, x827)))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x828)))))), Neg(Succ(Succ(Succ(Succ(Succ(x827)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(x827)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x828))), Succ(Succ(Succ(x827))), Succ(x828), Succ(x827))))) (5) (new_primModNatS01(x833, x832)=Succ(x397) & Succ(Succ(Zero))=x833 & Succ(Succ(Zero))=x832 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (6) (Succ(Succ(x836))=Succ(x397) & Succ(Succ(Zero))=x836 & Succ(Succ(Succ(x834)))=x835 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x834)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(x834)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x834))), Zero, Succ(x834))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x826, x825)=Succ(x397) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS2(Succ(x838), Succ(x837)), Succ(x837))=Succ(x397) & Succ(Succ(Succ(x824)))=x838 & Succ(Succ(Zero))=x837 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x824)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x824))), Succ(Succ(Zero)), Succ(x824), Zero)))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS02(x830, x829, x828, x827)=Succ(x397) & Succ(Succ(Succ(x828)))=x830 & Succ(Succ(Succ(x827)))=x829 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x828)))))), Neg(Succ(Succ(Succ(Succ(Succ(x827)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(x827)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x828))), Succ(Succ(Succ(x827))), Succ(x828), Succ(x827))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x833, x832)=Succ(x397) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x857), Succ(x856)), Succ(x856))=Succ(x397) & Succ(Succ(Zero))=x857 & Succ(Succ(Zero))=x856 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(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), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x834)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(x834)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x834))), Zero, Succ(x834))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x824)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x824))), Succ(Succ(Zero)), Succ(x824), Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x830, x829, x828, x827)=Succ(x397) which results in the following new constraints: (12) (new_primModNatS01(x845, x844)=Succ(x397) & Succ(Succ(Succ(Succ(x843))))=x845 & Succ(Succ(Succ(Zero)))=x844 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x843))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x843)))), Succ(Succ(Succ(Zero))), Succ(Succ(x843)), Succ(Zero))))) (13) (new_primModNatS02(x849, x848, x847, x846)=Succ(x397) & Succ(Succ(Succ(Succ(x847))))=x849 & Succ(Succ(Succ(Succ(x846))))=x848 & (\/x850:new_primModNatS02(x849, x848, x847, x846)=Succ(x850) & Succ(Succ(Succ(x847)))=x849 & Succ(Succ(Succ(x846)))=x848 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x847)))))), Neg(Succ(Succ(Succ(Succ(Succ(x846)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(x846)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x847))), Succ(Succ(Succ(x846))), Succ(x847), Succ(x846))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x847))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x846))))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x846))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x847)))), Succ(Succ(Succ(Succ(x846)))), Succ(Succ(x847)), Succ(Succ(x846)))))) (14) (new_primModNatS01(x852, x851)=Succ(x397) & Succ(Succ(Succ(Zero)))=x852 & Succ(Succ(Succ(Zero)))=x851 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(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(x855))=Succ(x397) & Succ(Succ(Succ(Zero)))=x855 & Succ(Succ(Succ(Succ(x853))))=x854 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x853))))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x853))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x853)))), Succ(Zero), Succ(Succ(x853)))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x843))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x843)))), Succ(Succ(Succ(Zero))), Succ(Succ(x843)), Succ(Zero))))) We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: (17) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x847))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x846))))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x846))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x847)))), Succ(Succ(Succ(Succ(x846)))), Succ(Succ(x847)), Succ(Succ(x846)))))) 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(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(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), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x853))))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x853))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x853)))), Succ(Zero), Succ(Succ(x853)))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Neg(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(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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(x446)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x446))))), Pos(Succ(Succ(Succ(Zero))))), new_gcd0Gcd'(x447, Pos(Succ(x448))) -> new_gcd0Gcd'1(False, x447, Pos(Succ(x448))) which results in the following constraint: (1) (new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x446))))), Pos(Succ(Succ(Succ(Zero)))))=new_gcd0Gcd'(x447, Pos(Succ(x448))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x446))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x446))))), 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(x446))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x446))))), Pos(Succ(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(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'0(Pos(Succ(Succ(Succ(Succ(x473))))), Pos(Succ(Succ(Succ(Succ(x474)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x474))))), Pos(new_primModNatS02(Succ(Succ(x473)), Succ(Succ(x474)), x473, x474))), new_gcd0Gcd'(x475, Pos(Succ(x476))) -> new_gcd0Gcd'1(False, x475, Pos(Succ(x476))) which results in the following constraint: (1) (new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x474))))), Pos(new_primModNatS02(Succ(Succ(x473)), Succ(Succ(x474)), x473, x474)))=new_gcd0Gcd'(x475, Pos(Succ(x476))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x473))))), Pos(Succ(Succ(Succ(Succ(x474))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x474))))), Pos(new_primModNatS02(Succ(Succ(x473)), Succ(Succ(x474)), x473, x474)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(Succ(x473))=x862 & Succ(Succ(x474))=x863 & new_primModNatS02(x862, x863, x473, x474)=Succ(x476) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x473))))), Pos(Succ(Succ(Succ(Succ(x474))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x474))))), Pos(new_primModNatS02(Succ(Succ(x473)), Succ(Succ(x474)), x473, x474)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x862, x863, x473, x474)=Succ(x476) which results in the following new constraints: (3) (new_primModNatS01(x866, x865)=Succ(x476) & Succ(Succ(Succ(x864)))=x866 & Succ(Succ(Zero))=x865 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x864)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x864))), Succ(Succ(Zero)), Succ(x864), Zero)))) (4) (new_primModNatS02(x870, x869, x868, x867)=Succ(x476) & Succ(Succ(Succ(x868)))=x870 & Succ(Succ(Succ(x867)))=x869 & (\/x871:new_primModNatS02(x870, x869, x868, x867)=Succ(x871) & Succ(Succ(x868))=x870 & Succ(Succ(x867))=x869 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x868))))), Pos(Succ(Succ(Succ(Succ(x867))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x867))))), Pos(new_primModNatS02(Succ(Succ(x868)), Succ(Succ(x867)), x868, x867)))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x868)))))), Pos(Succ(Succ(Succ(Succ(Succ(x867)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(x867)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x868))), Succ(Succ(Succ(x867))), Succ(x868), Succ(x867))))) (5) (new_primModNatS01(x873, x872)=Succ(x476) & Succ(Succ(Zero))=x873 & Succ(Succ(Zero))=x872 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (6) (Succ(Succ(x876))=Succ(x476) & Succ(Succ(Zero))=x876 & Succ(Succ(Succ(x874)))=x875 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x874)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(x874)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x874))), Zero, Succ(x874))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x866, x865)=Succ(x476) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS2(Succ(x878), Succ(x877)), Succ(x877))=Succ(x476) & Succ(Succ(Succ(x864)))=x878 & Succ(Succ(Zero))=x877 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x864)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x864))), Succ(Succ(Zero)), Succ(x864), Zero)))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS02(x870, x869, x868, x867)=Succ(x476) & Succ(Succ(Succ(x868)))=x870 & Succ(Succ(Succ(x867)))=x869 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x868)))))), Pos(Succ(Succ(Succ(Succ(Succ(x867)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(x867)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x868))), Succ(Succ(Succ(x867))), Succ(x868), Succ(x867))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x873, x872)=Succ(x476) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x897), Succ(x896)), Succ(x896))=Succ(x476) & Succ(Succ(Zero))=x897 & Succ(Succ(Zero))=x896 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(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), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x874)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(x874)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x874))), Zero, Succ(x874))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x864)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x864))), Succ(Succ(Zero)), Succ(x864), Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x870, x869, x868, x867)=Succ(x476) which results in the following new constraints: (12) (new_primModNatS01(x885, x884)=Succ(x476) & Succ(Succ(Succ(Succ(x883))))=x885 & Succ(Succ(Succ(Zero)))=x884 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x883))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x883)))), Succ(Succ(Succ(Zero))), Succ(Succ(x883)), Succ(Zero))))) (13) (new_primModNatS02(x889, x888, x887, x886)=Succ(x476) & Succ(Succ(Succ(Succ(x887))))=x889 & Succ(Succ(Succ(Succ(x886))))=x888 & (\/x890:new_primModNatS02(x889, x888, x887, x886)=Succ(x890) & Succ(Succ(Succ(x887)))=x889 & Succ(Succ(Succ(x886)))=x888 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x887)))))), Pos(Succ(Succ(Succ(Succ(Succ(x886)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(x886)))))), Pos(new_primModNatS02(Succ(Succ(Succ(x887))), Succ(Succ(Succ(x886))), Succ(x887), Succ(x886))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x887))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x886))))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x886))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x887)))), Succ(Succ(Succ(Succ(x886)))), Succ(Succ(x887)), Succ(Succ(x886)))))) (14) (new_primModNatS01(x892, x891)=Succ(x476) & Succ(Succ(Succ(Zero)))=x892 & Succ(Succ(Succ(Zero)))=x891 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(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(x895))=Succ(x476) & Succ(Succ(Succ(Zero)))=x895 & Succ(Succ(Succ(Succ(x893))))=x894 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x893))))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x893))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x893)))), Succ(Zero), Succ(Succ(x893)))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x883))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x883)))), Succ(Succ(Succ(Zero))), Succ(Succ(x883)), Succ(Zero))))) We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: (17) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x887))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x886))))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x886))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x887)))), Succ(Succ(Succ(Succ(x886)))), Succ(Succ(x887)), Succ(Succ(x886)))))) 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(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(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), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x893))))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x893))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x893)))), Succ(Zero), Succ(Succ(x893)))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(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(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(Pos(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)))), Pos(Succ(Succ(Succ(Succ(x525)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x525))))), Pos(Succ(Succ(Succ(Zero))))), new_gcd0Gcd'(x526, Pos(Succ(x527))) -> new_gcd0Gcd'1(False, x526, Pos(Succ(x527))) which results in the following constraint: (1) (new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x525))))), Pos(Succ(Succ(Succ(Zero)))))=new_gcd0Gcd'(x526, Pos(Succ(x527))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x525))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x525))))), 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)))), Pos(Succ(Succ(Succ(Succ(x525))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x525))))), Pos(Succ(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(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'0(Neg(Succ(Succ(Succ(Succ(x562))))), Pos(Succ(Succ(Succ(Succ(x563)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x563))))), Neg(new_primModNatS02(Succ(Succ(x562)), Succ(Succ(x563)), x562, x563))), new_gcd0Gcd'(x564, Neg(Succ(x565))) -> new_gcd0Gcd'1(False, x564, Neg(Succ(x565))) which results in the following constraint: (1) (new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x563))))), Neg(new_primModNatS02(Succ(Succ(x562)), Succ(Succ(x563)), x562, x563)))=new_gcd0Gcd'(x564, Neg(Succ(x565))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x562))))), Pos(Succ(Succ(Succ(Succ(x563))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x563))))), Neg(new_primModNatS02(Succ(Succ(x562)), Succ(Succ(x563)), x562, x563)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(Succ(x562))=x902 & Succ(Succ(x563))=x903 & new_primModNatS02(x902, x903, x562, x563)=Succ(x565) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x562))))), Pos(Succ(Succ(Succ(Succ(x563))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x563))))), Neg(new_primModNatS02(Succ(Succ(x562)), Succ(Succ(x563)), x562, x563)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x902, x903, x562, x563)=Succ(x565) which results in the following new constraints: (3) (new_primModNatS01(x906, x905)=Succ(x565) & Succ(Succ(Succ(x904)))=x906 & Succ(Succ(Zero))=x905 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x904)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x904))), Succ(Succ(Zero)), Succ(x904), Zero)))) (4) (new_primModNatS02(x910, x909, x908, x907)=Succ(x565) & Succ(Succ(Succ(x908)))=x910 & Succ(Succ(Succ(x907)))=x909 & (\/x911:new_primModNatS02(x910, x909, x908, x907)=Succ(x911) & Succ(Succ(x908))=x910 & Succ(Succ(x907))=x909 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x908))))), Pos(Succ(Succ(Succ(Succ(x907))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x907))))), Neg(new_primModNatS02(Succ(Succ(x908)), Succ(Succ(x907)), x908, x907)))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x908)))))), Pos(Succ(Succ(Succ(Succ(Succ(x907)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(x907)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x908))), Succ(Succ(Succ(x907))), Succ(x908), Succ(x907))))) (5) (new_primModNatS01(x913, x912)=Succ(x565) & Succ(Succ(Zero))=x913 & Succ(Succ(Zero))=x912 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (6) (Succ(Succ(x916))=Succ(x565) & Succ(Succ(Zero))=x916 & Succ(Succ(Succ(x914)))=x915 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x914)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(x914)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x914))), Zero, Succ(x914))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x906, x905)=Succ(x565) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS2(Succ(x918), Succ(x917)), Succ(x917))=Succ(x565) & Succ(Succ(Succ(x904)))=x918 & Succ(Succ(Zero))=x917 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x904)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x904))), Succ(Succ(Zero)), Succ(x904), Zero)))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS02(x910, x909, x908, x907)=Succ(x565) & Succ(Succ(Succ(x908)))=x910 & Succ(Succ(Succ(x907)))=x909 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x908)))))), Pos(Succ(Succ(Succ(Succ(Succ(x907)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(x907)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x908))), Succ(Succ(Succ(x907))), Succ(x908), Succ(x907))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x913, x912)=Succ(x565) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x937), Succ(x936)), Succ(x936))=Succ(x565) & Succ(Succ(Zero))=x937 & Succ(Succ(Zero))=x936 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(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), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x914)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(x914)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x914))), Zero, Succ(x914))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x904)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x904))), Succ(Succ(Zero)), Succ(x904), Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x910, x909, x908, x907)=Succ(x565) which results in the following new constraints: (12) (new_primModNatS01(x925, x924)=Succ(x565) & Succ(Succ(Succ(Succ(x923))))=x925 & Succ(Succ(Succ(Zero)))=x924 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x923))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x923)))), Succ(Succ(Succ(Zero))), Succ(Succ(x923)), Succ(Zero))))) (13) (new_primModNatS02(x929, x928, x927, x926)=Succ(x565) & Succ(Succ(Succ(Succ(x927))))=x929 & Succ(Succ(Succ(Succ(x926))))=x928 & (\/x930:new_primModNatS02(x929, x928, x927, x926)=Succ(x930) & Succ(Succ(Succ(x927)))=x929 & Succ(Succ(Succ(x926)))=x928 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x927)))))), Pos(Succ(Succ(Succ(Succ(Succ(x926)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(x926)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x927))), Succ(Succ(Succ(x926))), Succ(x927), Succ(x926))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x927))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x926))))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x926))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x927)))), Succ(Succ(Succ(Succ(x926)))), Succ(Succ(x927)), Succ(Succ(x926)))))) (14) (new_primModNatS01(x932, x931)=Succ(x565) & Succ(Succ(Succ(Zero)))=x932 & Succ(Succ(Succ(Zero)))=x931 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(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(x935))=Succ(x565) & Succ(Succ(Succ(Zero)))=x935 & Succ(Succ(Succ(Succ(x933))))=x934 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x933))))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x933))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x933)))), Succ(Zero), Succ(Succ(x933)))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x923))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x923)))), Succ(Succ(Succ(Zero))), Succ(Succ(x923)), Succ(Zero))))) We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: (17) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x927))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x926))))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x926))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x927)))), Succ(Succ(Succ(Succ(x926)))), Succ(Succ(x927)), Succ(Succ(x926)))))) 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(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(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), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x933))))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x933))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x933)))), Succ(Zero), Succ(Succ(x933)))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Pos(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(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x609)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x609))))), Neg(Succ(Succ(Succ(Zero))))), new_gcd0Gcd'(x610, Neg(Succ(x611))) -> new_gcd0Gcd'1(False, x610, Neg(Succ(x611))) which results in the following constraint: (1) (new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x609))))), Neg(Succ(Succ(Succ(Zero)))))=new_gcd0Gcd'(x610, Neg(Succ(x611))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x609))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x609))))), Neg(Succ(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(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x609))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x609))))), Neg(Succ(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x636))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x636), Succ(Succ(Zero))))), new_gcd0Gcd'(x637, Neg(Succ(x638))) -> new_gcd0Gcd'1(False, x637, Neg(Succ(x638))) which results in the following constraint: (1) (new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x636), Succ(Succ(Zero)))))=new_gcd0Gcd'(x637, Neg(Succ(x638))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x636))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x636), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(x636)=x942 & Succ(Succ(Zero))=x943 & new_primModNatS1(x942, x943)=Succ(x638) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x636))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x636), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x942, x943)=Succ(x638) which results in the following new constraints: (3) (Succ(Zero)=Succ(x638) & Succ(x636)=Succ(Zero) & Succ(Succ(Zero))=Succ(x944) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x636))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x636), Succ(Succ(Zero)))))) (4) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x638) & Succ(x636)=Succ(Zero) & Succ(Succ(Zero))=Zero ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x636))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x636), Succ(Succ(Zero)))))) (5) (new_primModNatS1(new_primMinusNatS0(x946), Zero)=Succ(x638) & Succ(x636)=Succ(Succ(x946)) & Succ(Succ(Zero))=Zero ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x636))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x636), Succ(Succ(Zero)))))) (6) (new_primModNatS02(x948, x947, x948, x947)=Succ(x638) & Succ(x636)=Succ(Succ(x948)) & Succ(Succ(Zero))=Succ(x947) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x636))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x636), Succ(Succ(Zero)))))) We simplified constraint (3) 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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) We solved constraint (4) using rules (I), (II).We solved constraint (5) using rules (I), (II).We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (8) (x948=x949 & x947=x950 & new_primModNatS02(x948, x947, x949, x950)=Succ(x638) & Succ(Zero)=x947 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x948)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x948)), Succ(Succ(Zero)))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x948, x947, x949, x950)=Succ(x638) which results in the following new constraints: (9) (new_primModNatS01(x953, x952)=Succ(x638) & x953=Succ(x951) & x952=Zero & Succ(Zero)=x952 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x953)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x953)), Succ(Succ(Zero)))))) (10) (new_primModNatS02(x957, x956, x955, x954)=Succ(x638) & x957=Succ(x955) & x956=Succ(x954) & Succ(Zero)=x956 & (\/x958:new_primModNatS02(x957, x956, x955, x954)=Succ(x958) & x957=x955 & x956=x954 & Succ(Zero)=x956 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x957)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x957)), Succ(Succ(Zero)))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x957)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x957)), Succ(Succ(Zero)))))) (11) (new_primModNatS01(x960, x959)=Succ(x638) & x960=Zero & x959=Zero & Succ(Zero)=x959 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x960)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x960)), Succ(Succ(Zero)))))) (12) (Succ(Succ(x963))=Succ(x638) & x963=Zero & x962=Succ(x961) & Succ(Zero)=x962 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x963)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x963)), Succ(Succ(Zero)))))) 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(x955))))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x955))), Succ(Succ(Zero)))))) 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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))), new_gcd0Gcd'(x658, Neg(Succ(x659))) -> new_gcd0Gcd'1(False, x658, Neg(Succ(x659))) which results in the following constraint: (1) (new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))=new_gcd0Gcd'(x658, Neg(Succ(x659))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(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_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x665))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x665, Zero, x665, Zero))), new_gcd0Gcd'(x666, Neg(Succ(x667))) -> new_gcd0Gcd'1(False, x666, Neg(Succ(x667))) which results in the following constraint: (1) (new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x665, Zero, x665, Zero)))=new_gcd0Gcd'(x666, Neg(Succ(x667))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x665))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x665, Zero, x665, Zero)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Zero=x966 & x665=x967 & Zero=x968 & new_primModNatS02(x665, x966, x967, x968)=Succ(x667) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x665))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x665, Zero, x665, Zero)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x665, x966, x967, x968)=Succ(x667) which results in the following new constraints: (3) (new_primModNatS01(x971, x970)=Succ(x667) & Zero=x970 & x971=Succ(x969) & Zero=Zero ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x971))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x971, Zero, x971, Zero)))) (4) (new_primModNatS02(x975, x974, x973, x972)=Succ(x667) & Zero=x974 & x975=Succ(x973) & Zero=Succ(x972) & (\/x976:new_primModNatS02(x975, x974, x973, x972)=Succ(x976) & Zero=x974 & x975=x973 & Zero=x972 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x975))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x975, Zero, x975, Zero)))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x975))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x975, Zero, x975, Zero)))) (5) (new_primModNatS01(x978, x977)=Succ(x667) & Zero=x977 & x978=Zero & Zero=Zero ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x978))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x978, Zero, x978, Zero)))) (6) (Succ(Succ(x981))=Succ(x667) & Zero=x980 & x981=Zero & Zero=Succ(x979) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x981))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x981, Zero, x981, Zero)))) We simplified constraint (3) using rules (I), (II), (III), (VII) which results in the following new constraint: (7) (Succ(x969)=x982 & new_primModNatS01(x982, x970)=Succ(x667) & Zero=x970 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x969)))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x969), Zero, Succ(x969), 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=x989 & new_primModNatS01(x989, x977)=Succ(x667) & Zero=x977 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(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(x982, x970)=Succ(x667) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x984), Succ(x983)), Succ(x983))=Succ(x667) & Succ(x969)=x984 & Zero=x983 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x969)))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x969), Zero, Succ(x969), Zero)))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (10) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x969)))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x969), Zero, Succ(x969), Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x989, x977)=Succ(x667) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS2(Succ(x991), Succ(x990)), Succ(x990))=Succ(x667) & Zero=x991 & Zero=x990 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(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'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(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'0(Neg(Succ(Succ(Succ(Succ(x697))))), Neg(Succ(Succ(Succ(Succ(x698)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x698))))), Neg(new_primModNatS02(Succ(Succ(x697)), Succ(Succ(x698)), x697, x698))), new_gcd0Gcd'(x699, Neg(Succ(x700))) -> new_gcd0Gcd'1(False, x699, Neg(Succ(x700))) which results in the following constraint: (1) (new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x698))))), Neg(new_primModNatS02(Succ(Succ(x697)), Succ(Succ(x698)), x697, x698)))=new_gcd0Gcd'(x699, Neg(Succ(x700))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x697))))), Neg(Succ(Succ(Succ(Succ(x698))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x698))))), Neg(new_primModNatS02(Succ(Succ(x697)), Succ(Succ(x698)), x697, x698)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(Succ(x697))=x996 & Succ(Succ(x698))=x997 & new_primModNatS02(x996, x997, x697, x698)=Succ(x700) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x697))))), Neg(Succ(Succ(Succ(Succ(x698))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x698))))), Neg(new_primModNatS02(Succ(Succ(x697)), Succ(Succ(x698)), x697, x698)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x996, x997, x697, x698)=Succ(x700) which results in the following new constraints: (3) (new_primModNatS01(x1000, x999)=Succ(x700) & Succ(Succ(Succ(x998)))=x1000 & Succ(Succ(Zero))=x999 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x998)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x998))), Succ(Succ(Zero)), Succ(x998), Zero)))) (4) (new_primModNatS02(x1004, x1003, x1002, x1001)=Succ(x700) & Succ(Succ(Succ(x1002)))=x1004 & Succ(Succ(Succ(x1001)))=x1003 & (\/x1005:new_primModNatS02(x1004, x1003, x1002, x1001)=Succ(x1005) & Succ(Succ(x1002))=x1004 & Succ(Succ(x1001))=x1003 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x1002))))), Neg(Succ(Succ(Succ(Succ(x1001))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x1001))))), Neg(new_primModNatS02(Succ(Succ(x1002)), Succ(Succ(x1001)), x1002, x1001)))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x1002)))))), Neg(Succ(Succ(Succ(Succ(Succ(x1001)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(x1001)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x1002))), Succ(Succ(Succ(x1001))), Succ(x1002), Succ(x1001))))) (5) (new_primModNatS01(x1007, x1006)=Succ(x700) & Succ(Succ(Zero))=x1007 & Succ(Succ(Zero))=x1006 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (6) (Succ(Succ(x1010))=Succ(x700) & Succ(Succ(Zero))=x1010 & Succ(Succ(Succ(x1008)))=x1009 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x1008)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(x1008)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1008))), Zero, Succ(x1008))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1000, x999)=Succ(x700) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS2(Succ(x1012), Succ(x1011)), Succ(x1011))=Succ(x700) & Succ(Succ(Succ(x998)))=x1012 & Succ(Succ(Zero))=x1011 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x998)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x998))), Succ(Succ(Zero)), Succ(x998), Zero)))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS02(x1004, x1003, x1002, x1001)=Succ(x700) & Succ(Succ(Succ(x1002)))=x1004 & Succ(Succ(Succ(x1001)))=x1003 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x1002)))))), Neg(Succ(Succ(Succ(Succ(Succ(x1001)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(x1001)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x1002))), Succ(Succ(Succ(x1001))), Succ(x1002), Succ(x1001))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1007, x1006)=Succ(x700) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x1031), Succ(x1030)), Succ(x1030))=Succ(x700) & Succ(Succ(Zero))=x1031 & Succ(Succ(Zero))=x1030 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(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), (IV) which results in the following new constraint: (10) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x1008)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(x1008)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1008))), Zero, Succ(x1008))))) We simplified constraint (7) using rules (III), (IV), (VII) which results in the following new constraint: (11) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x998)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x998))), Succ(Succ(Zero)), Succ(x998), Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1004, x1003, x1002, x1001)=Succ(x700) which results in the following new constraints: (12) (new_primModNatS01(x1019, x1018)=Succ(x700) & Succ(Succ(Succ(Succ(x1017))))=x1019 & Succ(Succ(Succ(Zero)))=x1018 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1017))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x1017)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1017)), Succ(Zero))))) (13) (new_primModNatS02(x1023, x1022, x1021, x1020)=Succ(x700) & Succ(Succ(Succ(Succ(x1021))))=x1023 & Succ(Succ(Succ(Succ(x1020))))=x1022 & (\/x1024:new_primModNatS02(x1023, x1022, x1021, x1020)=Succ(x1024) & Succ(Succ(Succ(x1021)))=x1023 & Succ(Succ(Succ(x1020)))=x1022 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x1021)))))), Neg(Succ(Succ(Succ(Succ(Succ(x1020)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(x1020)))))), Neg(new_primModNatS02(Succ(Succ(Succ(x1021))), Succ(Succ(Succ(x1020))), Succ(x1021), Succ(x1020))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1021))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1020))))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1020))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x1021)))), Succ(Succ(Succ(Succ(x1020)))), Succ(Succ(x1021)), Succ(Succ(x1020)))))) (14) (new_primModNatS01(x1026, x1025)=Succ(x700) & Succ(Succ(Succ(Zero)))=x1026 & Succ(Succ(Succ(Zero)))=x1025 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(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(x1029))=Succ(x700) & Succ(Succ(Succ(Zero)))=x1029 & Succ(Succ(Succ(Succ(x1027))))=x1028 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1027))))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1027))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1027)))), Succ(Zero), Succ(Succ(x1027)))))) We simplified constraint (12) using rules (III), (IV) which results in the following new constraint: (16) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1017))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x1017)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1017)), Succ(Zero))))) We simplified constraint (13) using rules (III), (IV) which results in the following new constraint: (17) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1021))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1020))))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1020))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x1021)))), Succ(Succ(Succ(Succ(x1020)))), Succ(Succ(x1021)), Succ(Succ(x1020)))))) 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(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(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), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1027))))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1027))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1027)))), Succ(Zero), Succ(Succ(x1027)))))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (20) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(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(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x744)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x744))))), Neg(Succ(Succ(Succ(Zero))))), new_gcd0Gcd'(x745, Neg(Succ(x746))) -> new_gcd0Gcd'1(False, x745, Neg(Succ(x746))) which results in the following constraint: (1) (new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x744))))), Neg(Succ(Succ(Succ(Zero)))))=new_gcd0Gcd'(x745, Neg(Succ(x746))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x744))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x744))))), Neg(Succ(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(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x744))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x744))))), Neg(Succ(Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x771))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x771), Succ(Succ(Zero))))), new_gcd0Gcd'(x772, Neg(Succ(x773))) -> new_gcd0Gcd'1(False, x772, Neg(Succ(x773))) which results in the following constraint: (1) (new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x771), Succ(Succ(Zero)))))=new_gcd0Gcd'(x772, Neg(Succ(x773))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x771))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x771), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(x771)=x1036 & Succ(Succ(Zero))=x1037 & new_primModNatS1(x1036, x1037)=Succ(x773) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x771))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x771), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x1036, x1037)=Succ(x773) which results in the following new constraints: (3) (Succ(Zero)=Succ(x773) & Succ(x771)=Succ(Zero) & Succ(Succ(Zero))=Succ(x1038) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x771))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x771), Succ(Succ(Zero)))))) (4) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x773) & Succ(x771)=Succ(Zero) & Succ(Succ(Zero))=Zero ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x771))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x771), Succ(Succ(Zero)))))) (5) (new_primModNatS1(new_primMinusNatS0(x1040), Zero)=Succ(x773) & Succ(x771)=Succ(Succ(x1040)) & Succ(Succ(Zero))=Zero ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x771))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x771), Succ(Succ(Zero)))))) (6) (new_primModNatS02(x1042, x1041, x1042, x1041)=Succ(x773) & Succ(x771)=Succ(Succ(x1042)) & Succ(Succ(Zero))=Succ(x1041) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x771))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x771), Succ(Succ(Zero)))))) We simplified constraint (3) using rules (I), (II), (III), (IV) which results in the following new constraint: (7) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) We solved constraint (4) using rules (I), (II).We solved constraint (5) using rules (I), (II).We simplified constraint (6) using rules (I), (II), (III), (VII) which results in the following new constraint: (8) (x1042=x1043 & x1041=x1044 & new_primModNatS02(x1042, x1041, x1043, x1044)=Succ(x773) & Succ(Zero)=x1041 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x1042)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x1042)), Succ(Succ(Zero)))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1042, x1041, x1043, x1044)=Succ(x773) which results in the following new constraints: (9) (new_primModNatS01(x1047, x1046)=Succ(x773) & x1047=Succ(x1045) & x1046=Zero & Succ(Zero)=x1046 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x1047)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x1047)), Succ(Succ(Zero)))))) (10) (new_primModNatS02(x1051, x1050, x1049, x1048)=Succ(x773) & x1051=Succ(x1049) & x1050=Succ(x1048) & Succ(Zero)=x1050 & (\/x1052:new_primModNatS02(x1051, x1050, x1049, x1048)=Succ(x1052) & x1051=x1049 & x1050=x1048 & Succ(Zero)=x1050 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x1051)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x1051)), Succ(Succ(Zero)))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x1051)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x1051)), Succ(Succ(Zero)))))) (11) (new_primModNatS01(x1054, x1053)=Succ(x773) & x1054=Zero & x1053=Zero & Succ(Zero)=x1053 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x1054)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x1054)), Succ(Succ(Zero)))))) (12) (Succ(Succ(x1057))=Succ(x773) & x1057=Zero & x1056=Succ(x1055) & Succ(Zero)=x1056 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x1057)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(x1057)), Succ(Succ(Zero)))))) 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(x1049))))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x1049))), Succ(Succ(Zero)))))) 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)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))), new_gcd0Gcd'(x793, Neg(Succ(x794))) -> new_gcd0Gcd'1(False, x793, Neg(Succ(x794))) which results in the following constraint: (1) (new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))=new_gcd0Gcd'(x793, Neg(Succ(x794))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(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_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) For Pair new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x800))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x800, Zero, x800, Zero))), new_gcd0Gcd'(x801, Neg(Succ(x802))) -> new_gcd0Gcd'1(False, x801, Neg(Succ(x802))) which results in the following constraint: (1) (new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x800, Zero, x800, Zero)))=new_gcd0Gcd'(x801, Neg(Succ(x802))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x800))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x800, Zero, x800, Zero)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Zero=x1060 & x800=x1061 & Zero=x1062 & new_primModNatS02(x800, x1060, x1061, x1062)=Succ(x802) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x800))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x800, Zero, x800, Zero)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x800, x1060, x1061, x1062)=Succ(x802) which results in the following new constraints: (3) (new_primModNatS01(x1065, x1064)=Succ(x802) & Zero=x1064 & x1065=Succ(x1063) & Zero=Zero ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x1065))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1065, Zero, x1065, Zero)))) (4) (new_primModNatS02(x1069, x1068, x1067, x1066)=Succ(x802) & Zero=x1068 & x1069=Succ(x1067) & Zero=Succ(x1066) & (\/x1070:new_primModNatS02(x1069, x1068, x1067, x1066)=Succ(x1070) & Zero=x1068 & x1069=x1067 & Zero=x1066 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x1069))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1069, Zero, x1069, Zero)))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x1069))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1069, Zero, x1069, Zero)))) (5) (new_primModNatS01(x1072, x1071)=Succ(x802) & Zero=x1071 & x1072=Zero & Zero=Zero ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x1072))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1072, Zero, x1072, Zero)))) (6) (Succ(Succ(x1075))=Succ(x802) & Zero=x1074 & x1075=Zero & Zero=Succ(x1073) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x1075))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x1075, Zero, x1075, Zero)))) We simplified constraint (3) using rules (I), (II), (III), (VII) which results in the following new constraint: (7) (Succ(x1063)=x1076 & new_primModNatS01(x1076, x1064)=Succ(x802) & Zero=x1064 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x1063)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x1063), Zero, Succ(x1063), 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=x1083 & new_primModNatS01(x1083, x1071)=Succ(x802) & Zero=x1071 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(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(x1076, x1064)=Succ(x802) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x1078), Succ(x1077)), Succ(x1077))=Succ(x802) & Succ(x1063)=x1078 & Zero=x1077 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x1063)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x1063), Zero, Succ(x1063), Zero)))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (10) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x1063)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x1063), Zero, Succ(x1063), Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1083, x1071)=Succ(x802) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS2(Succ(x1085), Succ(x1084)), Succ(x1084))=Succ(x802) & Zero=x1085 & Zero=x1084 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(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'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) To summarize, we get the following constraints P__>=_ for the following pairs. *new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) *(new_gcd0Gcd'(x2, Pos(Succ(x3)))_>=_new_gcd0Gcd'1(False, x2, Pos(Succ(x3)))) *new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) *(new_gcd0Gcd'1(False, Pos(Succ(Zero)), Neg(Succ(Succ(x58))))_>=_new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x58))))) *(new_gcd0Gcd'1(False, Pos(Succ(Zero)), Pos(Succ(Succ(x61))))_>=_new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x61))))) *(new_gcd0Gcd'1(False, Neg(Succ(Zero)), Pos(Succ(Succ(x64))))_>=_new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x64))))) *(new_gcd0Gcd'1(False, Neg(Succ(Zero)), Neg(Succ(Succ(x69))))_>=_new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x69))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x72)))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x72)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x75)))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x75)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x78)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x78)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x81)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x81)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x84))))), Neg(Succ(Succ(Succ(Succ(x85))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x84))))), Neg(Succ(Succ(Succ(Succ(x85))))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x88))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x88))))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x91))))), Pos(Succ(Succ(Succ(Succ(x92))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x91))))), Pos(Succ(Succ(Succ(Succ(x92))))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x95))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x95))))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x98))))), Pos(Succ(Succ(Succ(Succ(x99))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x98))))), Pos(Succ(Succ(Succ(Succ(x99))))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x102))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x102))))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x105))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x105))))), Pos(Succ(Succ(Succ(Zero)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x110))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x110))))), Pos(Succ(Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x113))))), Neg(Succ(Succ(Succ(Succ(x114))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x113))))), Neg(Succ(Succ(Succ(Succ(x114))))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x117))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x117))))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x120))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x120))))), Neg(Succ(Succ(Succ(Zero)))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x125))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x125))))), Neg(Succ(Succ(Zero))))) *new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) *(new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x126))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(x126))), Pos(Succ(Zero)))) *new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) *(new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x153))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(x153))), Pos(Succ(Zero)))) *new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) *(new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x185))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(x185))), Neg(Succ(Zero)))) *new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) *(new_gcd0Gcd'(x209, Neg(Succ(x210)))_>=_new_gcd0Gcd'1(False, x209, Neg(Succ(x210)))) *new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) *(new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x264))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(x264))), Neg(Succ(Zero)))) *new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x286)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(x286)))), Pos(Succ(Succ(Zero))))) *new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x313)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(x313)))), Pos(Succ(Succ(Zero))))) *new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x345)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(x345)))), Neg(Succ(Succ(Zero))))) *new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x372)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(x372)))), Neg(Succ(Succ(Zero))))) *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x853))))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x853))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x853)))), Succ(Zero), Succ(Succ(x853)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x834)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(x834)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x834))), Zero, Succ(x834))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x824)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x824))), Succ(Succ(Zero)), Succ(x824), Zero)))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x843))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x843)))), Succ(Succ(Succ(Zero))), Succ(Succ(x843)), Succ(Zero))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x847))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x846))))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x846))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x847)))), Succ(Succ(Succ(Succ(x846)))), Succ(Succ(x847)), Succ(Succ(x846)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x446))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x446))))), Pos(Succ(Succ(Succ(Zero)))))) *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(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(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x893))))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x893))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x893)))), Succ(Zero), Succ(Succ(x893)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x874)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(x874)))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x874))), Zero, Succ(x874))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x864)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Succ(x864))), Succ(Succ(Zero)), Succ(x864), Zero)))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x883))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x883)))), Succ(Succ(Succ(Zero))), Succ(Succ(x883)), Succ(Zero))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x887))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x886))))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x886))))))), Pos(new_primModNatS02(Succ(Succ(Succ(Succ(x887)))), Succ(Succ(Succ(Succ(x886)))), Succ(Succ(x887)), Succ(Succ(x886)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x525))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x525))))), Pos(Succ(Succ(Succ(Zero)))))) *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x933))))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x933))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x933)))), Succ(Zero), Succ(Succ(x933)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x914)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(x914)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x914))), Zero, Succ(x914))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x904)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x904))), Succ(Succ(Zero)), Succ(x904), Zero)))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x923))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x923)))), Succ(Succ(Succ(Zero))), Succ(Succ(x923)), Succ(Zero))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x927))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x926))))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x926))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x927)))), Succ(Succ(Succ(Succ(x926)))), Succ(Succ(x927)), Succ(Succ(x926)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x609))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x609))))), Neg(Succ(Succ(Succ(Zero)))))) *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x955))))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x955))), Succ(Succ(Zero)))))) *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero)))) *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x969)))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x969), Zero, Succ(x969), Zero)))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, Zero)))) *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(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(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1027))))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1027))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1027)))), Succ(Zero), Succ(Succ(x1027)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x1008)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(x1008)))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Succ(x1008))), Zero, Succ(x1008))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x998)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Succ(x998))), Succ(Succ(Zero)), Succ(x998), Zero)))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1017))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x1017)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1017)), Succ(Zero))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1021))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1020))))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1020))))))), Neg(new_primModNatS02(Succ(Succ(Succ(Succ(x1021)))), Succ(Succ(Succ(Succ(x1020)))), Succ(Succ(x1021)), Succ(Succ(x1020)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS02(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS02(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x744))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x744))))), Neg(Succ(Succ(Succ(Zero)))))) *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1049))))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(Succ(Succ(x1049))), Succ(Succ(Zero)))))) *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(Succ(Zero)))) *new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x1063)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x1063), Zero, Succ(x1063), Zero)))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero, Zero, 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. ---------------------------------------- (730) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz47, vuz46) -> new_gcd0Gcd'0(vuz47, vuz46) new_gcd0Gcd'0(Pos(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Pos(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Zero)), Pos(Succ(Succ(x0)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'(y0, Neg(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Neg(Succ(x0))) new_gcd0Gcd'0(Neg(Succ(Zero)), Neg(Succ(Succ(x0)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x0))), Neg(Succ(Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Succ(x2))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Pos(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS02(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x2)))))) -> new_gcd0Gcd'(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'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(Succ(Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz43000)) -> Succ(Zero) new_primModNatS1(Zero, vuz4300) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz44000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz44000), Zero) new_primModNatS1(Succ(Succ(vuz44000)), Succ(vuz43000)) -> new_primModNatS02(vuz44000, vuz43000, vuz44000, vuz43000) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS01(vuz89, vuz90) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz89), Succ(vuz90)), Succ(vuz90)) new_primModNatS02(vuz89, vuz90, Succ(vuz910), Succ(vuz920)) -> new_primModNatS02(vuz89, vuz90, vuz910, vuz920) new_primModNatS02(vuz89, vuz90, Zero, Zero) -> new_primModNatS01(vuz89, vuz90) new_primModNatS02(vuz89, vuz90, Zero, Succ(vuz920)) -> Succ(Succ(vuz89)) new_primMinusNatS2(Succ(vuz690), Succ(vuz700)) -> new_primMinusNatS2(vuz690, vuz700) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz700)) -> Zero new_primMinusNatS2(Succ(vuz690), Zero) -> Succ(vuz690) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz22000) -> Succ(vuz22000) The set Q consists of the following terms: new_primModNatS02(x0, x1, Succ(x2), Zero) new_primMinusNatS0(x0) new_primMinusNatS1 new_primModNatS02(x0, x1, Succ(x2), Succ(x3)) new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primModNatS1(Zero, x0) new_primModNatS02(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primModNatS1(Succ(Zero), Zero) new_primModNatS01(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primModNatS02(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (731) Narrow (COMPLETE) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="(*)",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="(*) vuz3",fontsize=16,color="grey",shape="box"];3 -> 4[label="",style="dashed", color="grey", weight=3]; 4[label="(*) vuz3 vuz4",fontsize=16,color="blue",shape="box"];1023[label="* :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];4 -> 1023[label="",style="solid", color="blue", weight=9]; 1023 -> 5[label="",style="solid", color="blue", weight=3]; 1024[label="* :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];4 -> 1024[label="",style="solid", color="blue", weight=9]; 1024 -> 6[label="",style="solid", color="blue", weight=3]; 1025[label="* :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];4 -> 1025[label="",style="solid", color="blue", weight=9]; 1025 -> 7[label="",style="solid", color="blue", weight=3]; 1026[label="* :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];4 -> 1026[label="",style="solid", color="blue", weight=9]; 1026 -> 8[label="",style="solid", color="blue", weight=3]; 1027[label="* :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];4 -> 1027[label="",style="solid", color="blue", weight=9]; 1027 -> 9[label="",style="solid", color="blue", weight=3]; 5[label="(*) vuz3 vuz4",fontsize=16,color="burlywood",shape="box"];1028[label="vuz3/vuz30 :% vuz31",fontsize=10,color="white",style="solid",shape="box"];5 -> 1028[label="",style="solid", color="burlywood", weight=9]; 1028 -> 10[label="",style="solid", color="burlywood", weight=3]; 6[label="(*) vuz3 vuz4",fontsize=16,color="black",shape="box"];6 -> 11[label="",style="solid", color="black", weight=3]; 7[label="(*) vuz3 vuz4",fontsize=16,color="black",shape="triangle"];7 -> 12[label="",style="solid", color="black", weight=3]; 8[label="(*) vuz3 vuz4",fontsize=16,color="burlywood",shape="triangle"];1029[label="vuz3/Integer vuz30",fontsize=10,color="white",style="solid",shape="box"];8 -> 1029[label="",style="solid", color="burlywood", weight=9]; 1029 -> 13[label="",style="solid", color="burlywood", weight=3]; 9[label="(*) vuz3 vuz4",fontsize=16,color="black",shape="box"];9 -> 14[label="",style="solid", color="black", weight=3]; 10[label="(*) (vuz30 :% vuz31) vuz4",fontsize=16,color="burlywood",shape="box"];1030[label="vuz4/vuz40 :% vuz41",fontsize=10,color="white",style="solid",shape="box"];10 -> 1030[label="",style="solid", color="burlywood", weight=9]; 1030 -> 15[label="",style="solid", color="burlywood", weight=3]; 11[label="primMulDouble vuz3 vuz4",fontsize=16,color="burlywood",shape="box"];1031[label="vuz3/Double vuz30 vuz31",fontsize=10,color="white",style="solid",shape="box"];11 -> 1031[label="",style="solid", color="burlywood", weight=9]; 1031 -> 16[label="",style="solid", color="burlywood", weight=3]; 12[label="primMulInt vuz3 vuz4",fontsize=16,color="burlywood",shape="triangle"];1032[label="vuz3/Pos vuz30",fontsize=10,color="white",style="solid",shape="box"];12 -> 1032[label="",style="solid", color="burlywood", weight=9]; 1032 -> 17[label="",style="solid", color="burlywood", weight=3]; 1033[label="vuz3/Neg vuz30",fontsize=10,color="white",style="solid",shape="box"];12 -> 1033[label="",style="solid", color="burlywood", weight=9]; 1033 -> 18[label="",style="solid", color="burlywood", weight=3]; 13[label="(*) Integer vuz30 vuz4",fontsize=16,color="burlywood",shape="box"];1034[label="vuz4/Integer vuz40",fontsize=10,color="white",style="solid",shape="box"];13 -> 1034[label="",style="solid", color="burlywood", weight=9]; 1034 -> 19[label="",style="solid", color="burlywood", weight=3]; 14[label="primMulFloat vuz3 vuz4",fontsize=16,color="burlywood",shape="box"];1035[label="vuz3/Float vuz30 vuz31",fontsize=10,color="white",style="solid",shape="box"];14 -> 1035[label="",style="solid", color="burlywood", weight=9]; 1035 -> 20[label="",style="solid", color="burlywood", weight=3]; 15[label="(*) (vuz30 :% vuz31) (vuz40 :% vuz41)",fontsize=16,color="black",shape="box"];15 -> 21[label="",style="solid", color="black", weight=3]; 16[label="primMulDouble (Double vuz30 vuz31) vuz4",fontsize=16,color="burlywood",shape="box"];1036[label="vuz4/Double vuz40 vuz41",fontsize=10,color="white",style="solid",shape="box"];16 -> 1036[label="",style="solid", color="burlywood", weight=9]; 1036 -> 22[label="",style="solid", color="burlywood", weight=3]; 17[label="primMulInt (Pos vuz30) vuz4",fontsize=16,color="burlywood",shape="box"];1037[label="vuz4/Pos vuz40",fontsize=10,color="white",style="solid",shape="box"];17 -> 1037[label="",style="solid", color="burlywood", weight=9]; 1037 -> 23[label="",style="solid", color="burlywood", weight=3]; 1038[label="vuz4/Neg vuz40",fontsize=10,color="white",style="solid",shape="box"];17 -> 1038[label="",style="solid", color="burlywood", weight=9]; 1038 -> 24[label="",style="solid", color="burlywood", weight=3]; 18[label="primMulInt (Neg vuz30) vuz4",fontsize=16,color="burlywood",shape="box"];1039[label="vuz4/Pos vuz40",fontsize=10,color="white",style="solid",shape="box"];18 -> 1039[label="",style="solid", color="burlywood", weight=9]; 1039 -> 25[label="",style="solid", color="burlywood", weight=3]; 1040[label="vuz4/Neg vuz40",fontsize=10,color="white",style="solid",shape="box"];18 -> 1040[label="",style="solid", color="burlywood", weight=9]; 1040 -> 26[label="",style="solid", color="burlywood", weight=3]; 19[label="(*) Integer vuz30 Integer vuz40",fontsize=16,color="black",shape="box"];19 -> 27[label="",style="solid", color="black", weight=3]; 20[label="primMulFloat (Float vuz30 vuz31) vuz4",fontsize=16,color="burlywood",shape="box"];1041[label="vuz4/Float vuz40 vuz41",fontsize=10,color="white",style="solid",shape="box"];20 -> 1041[label="",style="solid", color="burlywood", weight=9]; 1041 -> 28[label="",style="solid", color="burlywood", weight=3]; 21[label="reduce (vuz30 * vuz40) (vuz31 * vuz41)",fontsize=16,color="black",shape="box"];21 -> 29[label="",style="solid", color="black", weight=3]; 22[label="primMulDouble (Double vuz30 vuz31) (Double vuz40 vuz41)",fontsize=16,color="black",shape="box"];22 -> 30[label="",style="solid", color="black", weight=3]; 23[label="primMulInt (Pos vuz30) (Pos vuz40)",fontsize=16,color="black",shape="box"];23 -> 31[label="",style="solid", color="black", weight=3]; 24[label="primMulInt (Pos vuz30) (Neg vuz40)",fontsize=16,color="black",shape="box"];24 -> 32[label="",style="solid", color="black", weight=3]; 25[label="primMulInt (Neg vuz30) (Pos vuz40)",fontsize=16,color="black",shape="box"];25 -> 33[label="",style="solid", color="black", weight=3]; 26[label="primMulInt (Neg vuz30) (Neg vuz40)",fontsize=16,color="black",shape="box"];26 -> 34[label="",style="solid", color="black", weight=3]; 27[label="Integer (primMulInt vuz30 vuz40)",fontsize=16,color="green",shape="box"];27 -> 35[label="",style="dashed", color="green", weight=3]; 28[label="primMulFloat (Float vuz30 vuz31) (Float vuz40 vuz41)",fontsize=16,color="black",shape="box"];28 -> 36[label="",style="solid", color="black", weight=3]; 29[label="reduce2 (vuz30 * vuz40) (vuz31 * vuz41)",fontsize=16,color="black",shape="box"];29 -> 37[label="",style="solid", color="black", weight=3]; 30[label="Double (vuz30 * vuz40) (vuz31 * vuz41)",fontsize=16,color="green",shape="box"];30 -> 38[label="",style="dashed", color="green", weight=3]; 30 -> 39[label="",style="dashed", color="green", weight=3]; 31[label="Pos (primMulNat vuz30 vuz40)",fontsize=16,color="green",shape="box"];31 -> 40[label="",style="dashed", color="green", weight=3]; 32[label="Neg (primMulNat vuz30 vuz40)",fontsize=16,color="green",shape="box"];32 -> 41[label="",style="dashed", color="green", weight=3]; 33[label="Neg (primMulNat vuz30 vuz40)",fontsize=16,color="green",shape="box"];33 -> 42[label="",style="dashed", color="green", weight=3]; 34[label="Pos (primMulNat vuz30 vuz40)",fontsize=16,color="green",shape="box"];34 -> 43[label="",style="dashed", color="green", weight=3]; 35 -> 12[label="",style="dashed", color="red", weight=0]; 35[label="primMulInt vuz30 vuz40",fontsize=16,color="magenta"];35 -> 44[label="",style="dashed", color="magenta", weight=3]; 35 -> 45[label="",style="dashed", color="magenta", weight=3]; 36[label="Float (vuz30 * vuz40) (vuz31 * vuz41)",fontsize=16,color="green",shape="box"];36 -> 46[label="",style="dashed", color="green", weight=3]; 36 -> 47[label="",style="dashed", color="green", weight=3]; 37 -> 48[label="",style="dashed", color="red", weight=0]; 37[label="reduce2Reduce1 (vuz30 * vuz40) (vuz31 * vuz41) (vuz30 * vuz40) (vuz31 * vuz41) (vuz31 * vuz41 == fromInt (Pos Zero))",fontsize=16,color="magenta"];37 -> 49[label="",style="dashed", color="magenta", weight=3]; 37 -> 50[label="",style="dashed", color="magenta", weight=3]; 37 -> 51[label="",style="dashed", color="magenta", weight=3]; 37 -> 52[label="",style="dashed", color="magenta", weight=3]; 37 -> 53[label="",style="dashed", color="magenta", weight=3]; 38 -> 7[label="",style="dashed", color="red", weight=0]; 38[label="vuz30 * vuz40",fontsize=16,color="magenta"];38 -> 54[label="",style="dashed", color="magenta", weight=3]; 38 -> 55[label="",style="dashed", color="magenta", weight=3]; 39 -> 7[label="",style="dashed", color="red", weight=0]; 39[label="vuz31 * vuz41",fontsize=16,color="magenta"];39 -> 56[label="",style="dashed", color="magenta", weight=3]; 39 -> 57[label="",style="dashed", color="magenta", weight=3]; 40[label="primMulNat vuz30 vuz40",fontsize=16,color="burlywood",shape="triangle"];1042[label="vuz30/Succ vuz300",fontsize=10,color="white",style="solid",shape="box"];40 -> 1042[label="",style="solid", color="burlywood", weight=9]; 1042 -> 58[label="",style="solid", color="burlywood", weight=3]; 1043[label="vuz30/Zero",fontsize=10,color="white",style="solid",shape="box"];40 -> 1043[label="",style="solid", color="burlywood", weight=9]; 1043 -> 59[label="",style="solid", color="burlywood", weight=3]; 41 -> 40[label="",style="dashed", color="red", weight=0]; 41[label="primMulNat vuz30 vuz40",fontsize=16,color="magenta"];41 -> 60[label="",style="dashed", color="magenta", weight=3]; 42 -> 40[label="",style="dashed", color="red", weight=0]; 42[label="primMulNat vuz30 vuz40",fontsize=16,color="magenta"];42 -> 61[label="",style="dashed", color="magenta", weight=3]; 43 -> 40[label="",style="dashed", color="red", weight=0]; 43[label="primMulNat vuz30 vuz40",fontsize=16,color="magenta"];43 -> 62[label="",style="dashed", color="magenta", weight=3]; 43 -> 63[label="",style="dashed", color="magenta", weight=3]; 44[label="vuz40",fontsize=16,color="green",shape="box"];45[label="vuz30",fontsize=16,color="green",shape="box"];46 -> 7[label="",style="dashed", color="red", weight=0]; 46[label="vuz30 * vuz40",fontsize=16,color="magenta"];46 -> 64[label="",style="dashed", color="magenta", weight=3]; 46 -> 65[label="",style="dashed", color="magenta", weight=3]; 47 -> 7[label="",style="dashed", color="red", weight=0]; 47[label="vuz31 * vuz41",fontsize=16,color="magenta"];47 -> 66[label="",style="dashed", color="magenta", weight=3]; 47 -> 67[label="",style="dashed", color="magenta", weight=3]; 49[label="vuz41",fontsize=16,color="green",shape="box"];50[label="vuz31 * vuz41 == fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];1044[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];50 -> 1044[label="",style="solid", color="blue", weight=9]; 1044 -> 68[label="",style="solid", color="blue", weight=3]; 1045[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];50 -> 1045[label="",style="solid", color="blue", weight=9]; 1045 -> 69[label="",style="solid", color="blue", weight=3]; 51[label="vuz40",fontsize=16,color="green",shape="box"];52[label="vuz30",fontsize=16,color="green",shape="box"];53[label="vuz31",fontsize=16,color="green",shape="box"];48[label="reduce2Reduce1 (vuz11 * vuz12) (vuz13 * vuz14) (vuz11 * vuz12) (vuz13 * vuz14) vuz15",fontsize=16,color="burlywood",shape="triangle"];1046[label="vuz15/False",fontsize=10,color="white",style="solid",shape="box"];48 -> 1046[label="",style="solid", color="burlywood", weight=9]; 1046 -> 70[label="",style="solid", color="burlywood", weight=3]; 1047[label="vuz15/True",fontsize=10,color="white",style="solid",shape="box"];48 -> 1047[label="",style="solid", color="burlywood", weight=9]; 1047 -> 71[label="",style="solid", color="burlywood", weight=3]; 54[label="vuz40",fontsize=16,color="green",shape="box"];55[label="vuz30",fontsize=16,color="green",shape="box"];56[label="vuz41",fontsize=16,color="green",shape="box"];57[label="vuz31",fontsize=16,color="green",shape="box"];58[label="primMulNat (Succ vuz300) vuz40",fontsize=16,color="burlywood",shape="box"];1048[label="vuz40/Succ vuz400",fontsize=10,color="white",style="solid",shape="box"];58 -> 1048[label="",style="solid", color="burlywood", weight=9]; 1048 -> 72[label="",style="solid", color="burlywood", weight=3]; 1049[label="vuz40/Zero",fontsize=10,color="white",style="solid",shape="box"];58 -> 1049[label="",style="solid", color="burlywood", weight=9]; 1049 -> 73[label="",style="solid", color="burlywood", weight=3]; 59[label="primMulNat Zero vuz40",fontsize=16,color="burlywood",shape="box"];1050[label="vuz40/Succ vuz400",fontsize=10,color="white",style="solid",shape="box"];59 -> 1050[label="",style="solid", color="burlywood", weight=9]; 1050 -> 74[label="",style="solid", color="burlywood", weight=3]; 1051[label="vuz40/Zero",fontsize=10,color="white",style="solid",shape="box"];59 -> 1051[label="",style="solid", color="burlywood", weight=9]; 1051 -> 75[label="",style="solid", color="burlywood", weight=3]; 60[label="vuz40",fontsize=16,color="green",shape="box"];61[label="vuz30",fontsize=16,color="green",shape="box"];62[label="vuz30",fontsize=16,color="green",shape="box"];63[label="vuz40",fontsize=16,color="green",shape="box"];64[label="vuz40",fontsize=16,color="green",shape="box"];65[label="vuz30",fontsize=16,color="green",shape="box"];66[label="vuz41",fontsize=16,color="green",shape="box"];67[label="vuz31",fontsize=16,color="green",shape="box"];68 -> 76[label="",style="dashed", color="red", weight=0]; 68[label="vuz31 * vuz41 == fromInt (Pos Zero)",fontsize=16,color="magenta"];68 -> 77[label="",style="dashed", color="magenta", weight=3]; 69 -> 78[label="",style="dashed", color="red", weight=0]; 69[label="vuz31 * vuz41 == fromInt (Pos Zero)",fontsize=16,color="magenta"];69 -> 79[label="",style="dashed", color="magenta", weight=3]; 70[label="reduce2Reduce1 (vuz11 * vuz12) (vuz13 * vuz14) (vuz11 * vuz12) (vuz13 * vuz14) False",fontsize=16,color="black",shape="box"];70 -> 80[label="",style="solid", color="black", weight=3]; 71[label="reduce2Reduce1 (vuz11 * vuz12) (vuz13 * vuz14) (vuz11 * vuz12) (vuz13 * vuz14) True",fontsize=16,color="black",shape="box"];71 -> 81[label="",style="solid", color="black", weight=3]; 72[label="primMulNat (Succ vuz300) (Succ vuz400)",fontsize=16,color="black",shape="box"];72 -> 82[label="",style="solid", color="black", weight=3]; 73[label="primMulNat (Succ vuz300) Zero",fontsize=16,color="black",shape="box"];73 -> 83[label="",style="solid", color="black", weight=3]; 74[label="primMulNat Zero (Succ vuz400)",fontsize=16,color="black",shape="box"];74 -> 84[label="",style="solid", color="black", weight=3]; 75[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];75 -> 85[label="",style="solid", color="black", weight=3]; 77 -> 8[label="",style="dashed", color="red", weight=0]; 77[label="vuz31 * vuz41",fontsize=16,color="magenta"];77 -> 86[label="",style="dashed", color="magenta", weight=3]; 77 -> 87[label="",style="dashed", color="magenta", weight=3]; 76[label="vuz16 == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="triangle"];1052[label="vuz16/Integer vuz160",fontsize=10,color="white",style="solid",shape="box"];76 -> 1052[label="",style="solid", color="burlywood", weight=9]; 1052 -> 88[label="",style="solid", color="burlywood", weight=3]; 79 -> 7[label="",style="dashed", color="red", weight=0]; 79[label="vuz31 * vuz41",fontsize=16,color="magenta"];79 -> 89[label="",style="dashed", color="magenta", weight=3]; 79 -> 90[label="",style="dashed", color="magenta", weight=3]; 78[label="vuz17 == fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];78 -> 91[label="",style="solid", color="black", weight=3]; 80[label="reduce2Reduce0 (vuz11 * vuz12) (vuz13 * vuz14) (vuz11 * vuz12) (vuz13 * vuz14) otherwise",fontsize=16,color="black",shape="box"];80 -> 92[label="",style="solid", color="black", weight=3]; 81[label="error []",fontsize=16,color="black",shape="box"];81 -> 93[label="",style="solid", color="black", weight=3]; 82 -> 94[label="",style="dashed", color="red", weight=0]; 82[label="primPlusNat (primMulNat vuz300 (Succ vuz400)) (Succ vuz400)",fontsize=16,color="magenta"];82 -> 95[label="",style="dashed", color="magenta", weight=3]; 83[label="Zero",fontsize=16,color="green",shape="box"];84[label="Zero",fontsize=16,color="green",shape="box"];85[label="Zero",fontsize=16,color="green",shape="box"];86[label="vuz41",fontsize=16,color="green",shape="box"];87[label="vuz31",fontsize=16,color="green",shape="box"];88[label="Integer vuz160 == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];88 -> 96[label="",style="solid", color="black", weight=3]; 89[label="vuz41",fontsize=16,color="green",shape="box"];90[label="vuz31",fontsize=16,color="green",shape="box"];91[label="primEqInt vuz17 (fromInt (Pos Zero))",fontsize=16,color="burlywood",shape="box"];1053[label="vuz17/Pos vuz170",fontsize=10,color="white",style="solid",shape="box"];91 -> 1053[label="",style="solid", color="burlywood", weight=9]; 1053 -> 97[label="",style="solid", color="burlywood", weight=3]; 1054[label="vuz17/Neg vuz170",fontsize=10,color="white",style="solid",shape="box"];91 -> 1054[label="",style="solid", color="burlywood", weight=9]; 1054 -> 98[label="",style="solid", color="burlywood", weight=3]; 92[label="reduce2Reduce0 (vuz11 * vuz12) (vuz13 * vuz14) (vuz11 * vuz12) (vuz13 * vuz14) True",fontsize=16,color="black",shape="box"];92 -> 99[label="",style="solid", color="black", weight=3]; 93[label="error []",fontsize=16,color="red",shape="box"];95 -> 40[label="",style="dashed", color="red", weight=0]; 95[label="primMulNat vuz300 (Succ vuz400)",fontsize=16,color="magenta"];95 -> 100[label="",style="dashed", color="magenta", weight=3]; 95 -> 101[label="",style="dashed", color="magenta", weight=3]; 94[label="primPlusNat vuz18 (Succ vuz400)",fontsize=16,color="burlywood",shape="triangle"];1055[label="vuz18/Succ vuz180",fontsize=10,color="white",style="solid",shape="box"];94 -> 1055[label="",style="solid", color="burlywood", weight=9]; 1055 -> 102[label="",style="solid", color="burlywood", weight=3]; 1056[label="vuz18/Zero",fontsize=10,color="white",style="solid",shape="box"];94 -> 1056[label="",style="solid", color="burlywood", weight=9]; 1056 -> 103[label="",style="solid", color="burlywood", weight=3]; 96[label="Integer vuz160 == Integer (Pos Zero)",fontsize=16,color="black",shape="box"];96 -> 104[label="",style="solid", color="black", weight=3]; 97[label="primEqInt (Pos vuz170) (fromInt (Pos Zero))",fontsize=16,color="burlywood",shape="box"];1057[label="vuz170/Succ vuz1700",fontsize=10,color="white",style="solid",shape="box"];97 -> 1057[label="",style="solid", color="burlywood", weight=9]; 1057 -> 105[label="",style="solid", color="burlywood", weight=3]; 1058[label="vuz170/Zero",fontsize=10,color="white",style="solid",shape="box"];97 -> 1058[label="",style="solid", color="burlywood", weight=9]; 1058 -> 106[label="",style="solid", color="burlywood", weight=3]; 98[label="primEqInt (Neg vuz170) (fromInt (Pos Zero))",fontsize=16,color="burlywood",shape="box"];1059[label="vuz170/Succ vuz1700",fontsize=10,color="white",style="solid",shape="box"];98 -> 1059[label="",style="solid", color="burlywood", weight=9]; 1059 -> 107[label="",style="solid", color="burlywood", weight=3]; 1060[label="vuz170/Zero",fontsize=10,color="white",style="solid",shape="box"];98 -> 1060[label="",style="solid", color="burlywood", weight=9]; 1060 -> 108[label="",style="solid", color="burlywood", weight=3]; 99[label="vuz11 * vuz12 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14) :% (vuz13 * vuz14 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14))",fontsize=16,color="green",shape="box"];99 -> 109[label="",style="dashed", color="green", weight=3]; 99 -> 110[label="",style="dashed", color="green", weight=3]; 100[label="vuz300",fontsize=16,color="green",shape="box"];101[label="Succ vuz400",fontsize=16,color="green",shape="box"];102[label="primPlusNat (Succ vuz180) (Succ vuz400)",fontsize=16,color="black",shape="box"];102 -> 111[label="",style="solid", color="black", weight=3]; 103[label="primPlusNat Zero (Succ vuz400)",fontsize=16,color="black",shape="box"];103 -> 112[label="",style="solid", color="black", weight=3]; 104[label="primEqInt vuz160 (Pos Zero)",fontsize=16,color="burlywood",shape="triangle"];1061[label="vuz160/Pos vuz1600",fontsize=10,color="white",style="solid",shape="box"];104 -> 1061[label="",style="solid", color="burlywood", weight=9]; 1061 -> 113[label="",style="solid", color="burlywood", weight=3]; 1062[label="vuz160/Neg vuz1600",fontsize=10,color="white",style="solid",shape="box"];104 -> 1062[label="",style="solid", color="burlywood", weight=9]; 1062 -> 114[label="",style="solid", color="burlywood", weight=3]; 105[label="primEqInt (Pos (Succ vuz1700)) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];105 -> 115[label="",style="solid", color="black", weight=3]; 106[label="primEqInt (Pos Zero) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];106 -> 116[label="",style="solid", color="black", weight=3]; 107[label="primEqInt (Neg (Succ vuz1700)) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];107 -> 117[label="",style="solid", color="black", weight=3]; 108[label="primEqInt (Neg Zero) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];108 -> 118[label="",style="solid", color="black", weight=3]; 109[label="vuz11 * vuz12 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14)",fontsize=16,color="blue",shape="box"];1063[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];109 -> 1063[label="",style="solid", color="blue", weight=9]; 1063 -> 119[label="",style="solid", color="blue", weight=3]; 1064[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];109 -> 1064[label="",style="solid", color="blue", weight=9]; 1064 -> 120[label="",style="solid", color="blue", weight=3]; 110[label="vuz13 * vuz14 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14)",fontsize=16,color="blue",shape="box"];1065[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];110 -> 1065[label="",style="solid", color="blue", weight=9]; 1065 -> 121[label="",style="solid", color="blue", weight=3]; 1066[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];110 -> 1066[label="",style="solid", color="blue", weight=9]; 1066 -> 122[label="",style="solid", color="blue", weight=3]; 111[label="Succ (Succ (primPlusNat vuz180 vuz400))",fontsize=16,color="green",shape="box"];111 -> 123[label="",style="dashed", color="green", weight=3]; 112[label="Succ vuz400",fontsize=16,color="green",shape="box"];113[label="primEqInt (Pos vuz1600) (Pos Zero)",fontsize=16,color="burlywood",shape="box"];1067[label="vuz1600/Succ vuz16000",fontsize=10,color="white",style="solid",shape="box"];113 -> 1067[label="",style="solid", color="burlywood", weight=9]; 1067 -> 124[label="",style="solid", color="burlywood", weight=3]; 1068[label="vuz1600/Zero",fontsize=10,color="white",style="solid",shape="box"];113 -> 1068[label="",style="solid", color="burlywood", weight=9]; 1068 -> 125[label="",style="solid", color="burlywood", weight=3]; 114[label="primEqInt (Neg vuz1600) (Pos Zero)",fontsize=16,color="burlywood",shape="box"];1069[label="vuz1600/Succ vuz16000",fontsize=10,color="white",style="solid",shape="box"];114 -> 1069[label="",style="solid", color="burlywood", weight=9]; 1069 -> 126[label="",style="solid", color="burlywood", weight=3]; 1070[label="vuz1600/Zero",fontsize=10,color="white",style="solid",shape="box"];114 -> 1070[label="",style="solid", color="burlywood", weight=9]; 1070 -> 127[label="",style="solid", color="burlywood", weight=3]; 115 -> 104[label="",style="dashed", color="red", weight=0]; 115[label="primEqInt (Pos (Succ vuz1700)) (Pos Zero)",fontsize=16,color="magenta"];115 -> 128[label="",style="dashed", color="magenta", weight=3]; 116 -> 104[label="",style="dashed", color="red", weight=0]; 116[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="magenta"];116 -> 129[label="",style="dashed", color="magenta", weight=3]; 117 -> 104[label="",style="dashed", color="red", weight=0]; 117[label="primEqInt (Neg (Succ vuz1700)) (Pos Zero)",fontsize=16,color="magenta"];117 -> 130[label="",style="dashed", color="magenta", weight=3]; 118 -> 104[label="",style="dashed", color="red", weight=0]; 118[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="magenta"];118 -> 131[label="",style="dashed", color="magenta", weight=3]; 119 -> 132[label="",style="dashed", color="red", weight=0]; 119[label="vuz11 * vuz12 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14)",fontsize=16,color="magenta"];119 -> 133[label="",style="dashed", color="magenta", weight=3]; 119 -> 134[label="",style="dashed", color="magenta", weight=3]; 119 -> 135[label="",style="dashed", color="magenta", weight=3]; 120 -> 139[label="",style="dashed", color="red", weight=0]; 120[label="vuz11 * vuz12 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14)",fontsize=16,color="magenta"];120 -> 140[label="",style="dashed", color="magenta", weight=3]; 120 -> 141[label="",style="dashed", color="magenta", weight=3]; 120 -> 142[label="",style="dashed", color="magenta", weight=3]; 121 -> 132[label="",style="dashed", color="red", weight=0]; 121[label="vuz13 * vuz14 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14)",fontsize=16,color="magenta"];121 -> 136[label="",style="dashed", color="magenta", weight=3]; 121 -> 137[label="",style="dashed", color="magenta", weight=3]; 121 -> 138[label="",style="dashed", color="magenta", weight=3]; 122 -> 139[label="",style="dashed", color="red", weight=0]; 122[label="vuz13 * vuz14 `quot` reduce2D (vuz11 * vuz12) (vuz13 * vuz14)",fontsize=16,color="magenta"];122 -> 143[label="",style="dashed", color="magenta", weight=3]; 122 -> 144[label="",style="dashed", color="magenta", weight=3]; 122 -> 145[label="",style="dashed", color="magenta", weight=3]; 123[label="primPlusNat vuz180 vuz400",fontsize=16,color="burlywood",shape="triangle"];1071[label="vuz180/Succ vuz1800",fontsize=10,color="white",style="solid",shape="box"];123 -> 1071[label="",style="solid", color="burlywood", weight=9]; 1071 -> 146[label="",style="solid", color="burlywood", weight=3]; 1072[label="vuz180/Zero",fontsize=10,color="white",style="solid",shape="box"];123 -> 1072[label="",style="solid", color="burlywood", weight=9]; 1072 -> 147[label="",style="solid", color="burlywood", weight=3]; 124[label="primEqInt (Pos (Succ vuz16000)) (Pos Zero)",fontsize=16,color="black",shape="box"];124 -> 148[label="",style="solid", color="black", weight=3]; 125[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];125 -> 149[label="",style="solid", color="black", weight=3]; 126[label="primEqInt (Neg (Succ vuz16000)) (Pos Zero)",fontsize=16,color="black",shape="box"];126 -> 150[label="",style="solid", color="black", weight=3]; 127[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];127 -> 151[label="",style="solid", color="black", weight=3]; 128[label="Pos (Succ vuz1700)",fontsize=16,color="green",shape="box"];129[label="Pos Zero",fontsize=16,color="green",shape="box"];130[label="Neg (Succ vuz1700)",fontsize=16,color="green",shape="box"];131[label="Neg Zero",fontsize=16,color="green",shape="box"];133 -> 8[label="",style="dashed", color="red", weight=0]; 133[label="vuz11 * vuz12",fontsize=16,color="magenta"];133 -> 152[label="",style="dashed", color="magenta", weight=3]; 133 -> 153[label="",style="dashed", color="magenta", weight=3]; 134 -> 8[label="",style="dashed", color="red", weight=0]; 134[label="vuz11 * vuz12",fontsize=16,color="magenta"];134 -> 154[label="",style="dashed", color="magenta", weight=3]; 134 -> 155[label="",style="dashed", color="magenta", weight=3]; 135 -> 8[label="",style="dashed", color="red", weight=0]; 135[label="vuz13 * vuz14",fontsize=16,color="magenta"];135 -> 156[label="",style="dashed", color="magenta", weight=3]; 135 -> 157[label="",style="dashed", color="magenta", weight=3]; 132[label="vuz19 `quot` reduce2D vuz21 vuz20",fontsize=16,color="burlywood",shape="triangle"];1073[label="vuz19/Integer vuz190",fontsize=10,color="white",style="solid",shape="box"];132 -> 1073[label="",style="solid", color="burlywood", weight=9]; 1073 -> 158[label="",style="solid", color="burlywood", weight=3]; 140 -> 7[label="",style="dashed", color="red", weight=0]; 140[label="vuz11 * vuz12",fontsize=16,color="magenta"];140 -> 159[label="",style="dashed", color="magenta", weight=3]; 140 -> 160[label="",style="dashed", color="magenta", weight=3]; 141 -> 7[label="",style="dashed", color="red", weight=0]; 141[label="vuz11 * vuz12",fontsize=16,color="magenta"];141 -> 161[label="",style="dashed", color="magenta", weight=3]; 141 -> 162[label="",style="dashed", color="magenta", weight=3]; 142 -> 7[label="",style="dashed", color="red", weight=0]; 142[label="vuz13 * vuz14",fontsize=16,color="magenta"];142 -> 163[label="",style="dashed", color="magenta", weight=3]; 142 -> 164[label="",style="dashed", color="magenta", weight=3]; 139[label="vuz22 `quot` reduce2D vuz24 vuz23",fontsize=16,color="black",shape="triangle"];139 -> 165[label="",style="solid", color="black", weight=3]; 136 -> 8[label="",style="dashed", color="red", weight=0]; 136[label="vuz13 * vuz14",fontsize=16,color="magenta"];136 -> 166[label="",style="dashed", color="magenta", weight=3]; 136 -> 167[label="",style="dashed", color="magenta", weight=3]; 137 -> 8[label="",style="dashed", color="red", weight=0]; 137[label="vuz11 * vuz12",fontsize=16,color="magenta"];137 -> 168[label="",style="dashed", color="magenta", weight=3]; 137 -> 169[label="",style="dashed", color="magenta", weight=3]; 138 -> 8[label="",style="dashed", color="red", weight=0]; 138[label="vuz13 * vuz14",fontsize=16,color="magenta"];138 -> 170[label="",style="dashed", color="magenta", weight=3]; 138 -> 171[label="",style="dashed", color="magenta", weight=3]; 143 -> 7[label="",style="dashed", color="red", weight=0]; 143[label="vuz13 * vuz14",fontsize=16,color="magenta"];143 -> 172[label="",style="dashed", color="magenta", weight=3]; 143 -> 173[label="",style="dashed", color="magenta", weight=3]; 144 -> 7[label="",style="dashed", color="red", weight=0]; 144[label="vuz11 * vuz12",fontsize=16,color="magenta"];144 -> 174[label="",style="dashed", color="magenta", weight=3]; 144 -> 175[label="",style="dashed", color="magenta", weight=3]; 145 -> 7[label="",style="dashed", color="red", weight=0]; 145[label="vuz13 * vuz14",fontsize=16,color="magenta"];145 -> 176[label="",style="dashed", color="magenta", weight=3]; 145 -> 177[label="",style="dashed", color="magenta", weight=3]; 146[label="primPlusNat (Succ vuz1800) vuz400",fontsize=16,color="burlywood",shape="box"];1074[label="vuz400/Succ vuz4000",fontsize=10,color="white",style="solid",shape="box"];146 -> 1074[label="",style="solid", color="burlywood", weight=9]; 1074 -> 178[label="",style="solid", color="burlywood", weight=3]; 1075[label="vuz400/Zero",fontsize=10,color="white",style="solid",shape="box"];146 -> 1075[label="",style="solid", color="burlywood", weight=9]; 1075 -> 179[label="",style="solid", color="burlywood", weight=3]; 147[label="primPlusNat Zero vuz400",fontsize=16,color="burlywood",shape="box"];1076[label="vuz400/Succ vuz4000",fontsize=10,color="white",style="solid",shape="box"];147 -> 1076[label="",style="solid", color="burlywood", weight=9]; 1076 -> 180[label="",style="solid", color="burlywood", weight=3]; 1077[label="vuz400/Zero",fontsize=10,color="white",style="solid",shape="box"];147 -> 1077[label="",style="solid", color="burlywood", weight=9]; 1077 -> 181[label="",style="solid", color="burlywood", weight=3]; 148[label="False",fontsize=16,color="green",shape="box"];149[label="True",fontsize=16,color="green",shape="box"];150[label="False",fontsize=16,color="green",shape="box"];151[label="True",fontsize=16,color="green",shape="box"];152[label="vuz12",fontsize=16,color="green",shape="box"];153[label="vuz11",fontsize=16,color="green",shape="box"];154[label="vuz12",fontsize=16,color="green",shape="box"];155[label="vuz11",fontsize=16,color="green",shape="box"];156[label="vuz14",fontsize=16,color="green",shape="box"];157[label="vuz13",fontsize=16,color="green",shape="box"];158[label="Integer vuz190 `quot` reduce2D vuz21 vuz20",fontsize=16,color="black",shape="box"];158 -> 182[label="",style="solid", color="black", weight=3]; 159[label="vuz12",fontsize=16,color="green",shape="box"];160[label="vuz11",fontsize=16,color="green",shape="box"];161[label="vuz12",fontsize=16,color="green",shape="box"];162[label="vuz11",fontsize=16,color="green",shape="box"];163[label="vuz14",fontsize=16,color="green",shape="box"];164[label="vuz13",fontsize=16,color="green",shape="box"];165[label="primQuotInt vuz22 (reduce2D vuz24 vuz23)",fontsize=16,color="burlywood",shape="box"];1078[label="vuz22/Pos vuz220",fontsize=10,color="white",style="solid",shape="box"];165 -> 1078[label="",style="solid", color="burlywood", weight=9]; 1078 -> 183[label="",style="solid", color="burlywood", weight=3]; 1079[label="vuz22/Neg vuz220",fontsize=10,color="white",style="solid",shape="box"];165 -> 1079[label="",style="solid", color="burlywood", weight=9]; 1079 -> 184[label="",style="solid", color="burlywood", weight=3]; 166[label="vuz14",fontsize=16,color="green",shape="box"];167[label="vuz13",fontsize=16,color="green",shape="box"];168[label="vuz12",fontsize=16,color="green",shape="box"];169[label="vuz11",fontsize=16,color="green",shape="box"];170[label="vuz14",fontsize=16,color="green",shape="box"];171[label="vuz13",fontsize=16,color="green",shape="box"];172[label="vuz14",fontsize=16,color="green",shape="box"];173[label="vuz13",fontsize=16,color="green",shape="box"];174[label="vuz12",fontsize=16,color="green",shape="box"];175[label="vuz11",fontsize=16,color="green",shape="box"];176[label="vuz14",fontsize=16,color="green",shape="box"];177[label="vuz13",fontsize=16,color="green",shape="box"];178[label="primPlusNat (Succ vuz1800) (Succ vuz4000)",fontsize=16,color="black",shape="box"];178 -> 185[label="",style="solid", color="black", weight=3]; 179[label="primPlusNat (Succ vuz1800) Zero",fontsize=16,color="black",shape="box"];179 -> 186[label="",style="solid", color="black", weight=3]; 180[label="primPlusNat Zero (Succ vuz4000)",fontsize=16,color="black",shape="box"];180 -> 187[label="",style="solid", color="black", weight=3]; 181[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];181 -> 188[label="",style="solid", color="black", weight=3]; 182 -> 276[label="",style="dashed", color="red", weight=0]; 182[label="Integer vuz190 `quot` gcd vuz21 vuz20",fontsize=16,color="magenta"];182 -> 277[label="",style="dashed", color="magenta", weight=3]; 183[label="primQuotInt (Pos vuz220) (reduce2D vuz24 vuz23)",fontsize=16,color="black",shape="box"];183 -> 190[label="",style="solid", color="black", weight=3]; 184[label="primQuotInt (Neg vuz220) (reduce2D vuz24 vuz23)",fontsize=16,color="black",shape="box"];184 -> 191[label="",style="solid", color="black", weight=3]; 185[label="Succ (Succ (primPlusNat vuz1800 vuz4000))",fontsize=16,color="green",shape="box"];185 -> 192[label="",style="dashed", color="green", weight=3]; 186[label="Succ vuz1800",fontsize=16,color="green",shape="box"];187[label="Succ vuz4000",fontsize=16,color="green",shape="box"];188[label="Zero",fontsize=16,color="green",shape="box"];277[label="gcd vuz21 vuz20",fontsize=16,color="black",shape="box"];277 -> 293[label="",style="solid", color="black", weight=3]; 276[label="Integer vuz190 `quot` vuz36",fontsize=16,color="burlywood",shape="triangle"];1080[label="vuz36/Integer vuz360",fontsize=10,color="white",style="solid",shape="box"];276 -> 1080[label="",style="solid", color="burlywood", weight=9]; 1080 -> 294[label="",style="solid", color="burlywood", weight=3]; 190 -> 312[label="",style="dashed", color="red", weight=0]; 190[label="primQuotInt (Pos vuz220) (gcd vuz24 vuz23)",fontsize=16,color="magenta"];190 -> 313[label="",style="dashed", color="magenta", weight=3]; 191[label="primQuotInt (Neg vuz220) (gcd vuz24 vuz23)",fontsize=16,color="black",shape="box"];191 -> 195[label="",style="solid", color="black", weight=3]; 192 -> 123[label="",style="dashed", color="red", weight=0]; 192[label="primPlusNat vuz1800 vuz4000",fontsize=16,color="magenta"];192 -> 196[label="",style="dashed", color="magenta", weight=3]; 192 -> 197[label="",style="dashed", color="magenta", weight=3]; 293[label="gcd3 vuz21 vuz20",fontsize=16,color="black",shape="box"];293 -> 300[label="",style="solid", color="black", weight=3]; 294[label="Integer vuz190 `quot` Integer vuz360",fontsize=16,color="black",shape="box"];294 -> 301[label="",style="solid", color="black", weight=3]; 313[label="gcd vuz24 vuz23",fontsize=16,color="black",shape="box"];313 -> 329[label="",style="solid", color="black", weight=3]; 312[label="primQuotInt (Pos vuz220) vuz40",fontsize=16,color="burlywood",shape="triangle"];1081[label="vuz40/Pos vuz400",fontsize=10,color="white",style="solid",shape="box"];312 -> 1081[label="",style="solid", color="burlywood", weight=9]; 1081 -> 330[label="",style="solid", color="burlywood", weight=3]; 1082[label="vuz40/Neg vuz400",fontsize=10,color="white",style="solid",shape="box"];312 -> 1082[label="",style="solid", color="burlywood", weight=9]; 1082 -> 331[label="",style="solid", color="burlywood", weight=3]; 195[label="primQuotInt (Neg vuz220) (gcd3 vuz24 vuz23)",fontsize=16,color="black",shape="box"];195 -> 201[label="",style="solid", color="black", weight=3]; 196[label="vuz4000",fontsize=16,color="green",shape="box"];197[label="vuz1800",fontsize=16,color="green",shape="box"];300 -> 306[label="",style="dashed", color="red", weight=0]; 300[label="gcd2 (vuz21 == fromInt (Pos Zero)) vuz21 vuz20",fontsize=16,color="magenta"];300 -> 307[label="",style="dashed", color="magenta", weight=3]; 301[label="Integer (primQuotInt vuz190 vuz360)",fontsize=16,color="green",shape="box"];301 -> 308[label="",style="dashed", color="green", weight=3]; 329[label="gcd3 vuz24 vuz23",fontsize=16,color="black",shape="box"];329 -> 341[label="",style="solid", color="black", weight=3]; 330[label="primQuotInt (Pos vuz220) (Pos vuz400)",fontsize=16,color="burlywood",shape="box"];1083[label="vuz400/Succ vuz4000",fontsize=10,color="white",style="solid",shape="box"];330 -> 1083[label="",style="solid", color="burlywood", weight=9]; 1083 -> 342[label="",style="solid", color="burlywood", weight=3]; 1084[label="vuz400/Zero",fontsize=10,color="white",style="solid",shape="box"];330 -> 1084[label="",style="solid", color="burlywood", weight=9]; 1084 -> 343[label="",style="solid", color="burlywood", weight=3]; 331[label="primQuotInt (Pos vuz220) (Neg vuz400)",fontsize=16,color="burlywood",shape="box"];1085[label="vuz400/Succ vuz4000",fontsize=10,color="white",style="solid",shape="box"];331 -> 1085[label="",style="solid", color="burlywood", weight=9]; 1085 -> 344[label="",style="solid", color="burlywood", weight=3]; 1086[label="vuz400/Zero",fontsize=10,color="white",style="solid",shape="box"];331 -> 1086[label="",style="solid", color="burlywood", weight=9]; 1086 -> 345[label="",style="solid", color="burlywood", weight=3]; 201 -> 207[label="",style="dashed", color="red", weight=0]; 201[label="primQuotInt (Neg vuz220) (gcd2 (vuz24 == fromInt (Pos Zero)) vuz24 vuz23)",fontsize=16,color="magenta"];201 -> 208[label="",style="dashed", color="magenta", weight=3]; 307 -> 76[label="",style="dashed", color="red", weight=0]; 307[label="vuz21 == fromInt (Pos Zero)",fontsize=16,color="magenta"];307 -> 309[label="",style="dashed", color="magenta", weight=3]; 306[label="gcd2 vuz39 vuz21 vuz20",fontsize=16,color="burlywood",shape="triangle"];1087[label="vuz39/False",fontsize=10,color="white",style="solid",shape="box"];306 -> 1087[label="",style="solid", color="burlywood", weight=9]; 1087 -> 310[label="",style="solid", color="burlywood", weight=3]; 1088[label="vuz39/True",fontsize=10,color="white",style="solid",shape="box"];306 -> 1088[label="",style="solid", color="burlywood", weight=9]; 1088 -> 311[label="",style="solid", color="burlywood", weight=3]; 308[label="primQuotInt vuz190 vuz360",fontsize=16,color="burlywood",shape="triangle"];1089[label="vuz190/Pos vuz1900",fontsize=10,color="white",style="solid",shape="box"];308 -> 1089[label="",style="solid", color="burlywood", weight=9]; 1089 -> 332[label="",style="solid", color="burlywood", weight=3]; 1090[label="vuz190/Neg vuz1900",fontsize=10,color="white",style="solid",shape="box"];308 -> 1090[label="",style="solid", color="burlywood", weight=9]; 1090 -> 333[label="",style="solid", color="burlywood", weight=3]; 341 -> 353[label="",style="dashed", color="red", weight=0]; 341[label="gcd2 (vuz24 == fromInt (Pos Zero)) vuz24 vuz23",fontsize=16,color="magenta"];341 -> 354[label="",style="dashed", color="magenta", weight=3]; 342[label="primQuotInt (Pos vuz220) (Pos (Succ vuz4000))",fontsize=16,color="black",shape="box"];342 -> 355[label="",style="solid", color="black", weight=3]; 343[label="primQuotInt (Pos vuz220) (Pos Zero)",fontsize=16,color="black",shape="box"];343 -> 356[label="",style="solid", color="black", weight=3]; 344[label="primQuotInt (Pos vuz220) (Neg (Succ vuz4000))",fontsize=16,color="black",shape="box"];344 -> 357[label="",style="solid", color="black", weight=3]; 345[label="primQuotInt (Pos vuz220) (Neg Zero)",fontsize=16,color="black",shape="box"];345 -> 358[label="",style="solid", color="black", weight=3]; 208 -> 78[label="",style="dashed", color="red", weight=0]; 208[label="vuz24 == fromInt (Pos Zero)",fontsize=16,color="magenta"];208 -> 214[label="",style="dashed", color="magenta", weight=3]; 207[label="primQuotInt (Neg vuz220) (gcd2 vuz27 vuz24 vuz23)",fontsize=16,color="burlywood",shape="triangle"];1091[label="vuz27/False",fontsize=10,color="white",style="solid",shape="box"];207 -> 1091[label="",style="solid", color="burlywood", weight=9]; 1091 -> 215[label="",style="solid", color="burlywood", weight=3]; 1092[label="vuz27/True",fontsize=10,color="white",style="solid",shape="box"];207 -> 1092[label="",style="solid", color="burlywood", weight=9]; 1092 -> 216[label="",style="solid", color="burlywood", weight=3]; 309[label="vuz21",fontsize=16,color="green",shape="box"];310[label="gcd2 False vuz21 vuz20",fontsize=16,color="black",shape="box"];310 -> 334[label="",style="solid", color="black", weight=3]; 311[label="gcd2 True vuz21 vuz20",fontsize=16,color="black",shape="box"];311 -> 335[label="",style="solid", color="black", weight=3]; 332[label="primQuotInt (Pos vuz1900) vuz360",fontsize=16,color="burlywood",shape="box"];1093[label="vuz360/Pos vuz3600",fontsize=10,color="white",style="solid",shape="box"];332 -> 1093[label="",style="solid", color="burlywood", weight=9]; 1093 -> 346[label="",style="solid", color="burlywood", weight=3]; 1094[label="vuz360/Neg vuz3600",fontsize=10,color="white",style="solid",shape="box"];332 -> 1094[label="",style="solid", color="burlywood", weight=9]; 1094 -> 347[label="",style="solid", color="burlywood", weight=3]; 333[label="primQuotInt (Neg vuz1900) vuz360",fontsize=16,color="burlywood",shape="box"];1095[label="vuz360/Pos vuz3600",fontsize=10,color="white",style="solid",shape="box"];333 -> 1095[label="",style="solid", color="burlywood", weight=9]; 1095 -> 348[label="",style="solid", color="burlywood", weight=3]; 1096[label="vuz360/Neg vuz3600",fontsize=10,color="white",style="solid",shape="box"];333 -> 1096[label="",style="solid", color="burlywood", weight=9]; 1096 -> 349[label="",style="solid", color="burlywood", weight=3]; 354 -> 78[label="",style="dashed", color="red", weight=0]; 354[label="vuz24 == fromInt (Pos Zero)",fontsize=16,color="magenta"];354 -> 359[label="",style="dashed", color="magenta", weight=3]; 353[label="gcd2 vuz42 vuz24 vuz23",fontsize=16,color="burlywood",shape="triangle"];1097[label="vuz42/False",fontsize=10,color="white",style="solid",shape="box"];353 -> 1097[label="",style="solid", color="burlywood", weight=9]; 1097 -> 360[label="",style="solid", color="burlywood", weight=3]; 1098[label="vuz42/True",fontsize=10,color="white",style="solid",shape="box"];353 -> 1098[label="",style="solid", color="burlywood", weight=9]; 1098 -> 361[label="",style="solid", color="burlywood", weight=3]; 355[label="Pos (primDivNatS vuz220 (Succ vuz4000))",fontsize=16,color="green",shape="box"];355 -> 377[label="",style="dashed", color="green", weight=3]; 356[label="error []",fontsize=16,color="black",shape="triangle"];356 -> 378[label="",style="solid", color="black", weight=3]; 357[label="Neg (primDivNatS vuz220 (Succ vuz4000))",fontsize=16,color="green",shape="box"];357 -> 379[label="",style="dashed", color="green", weight=3]; 358 -> 356[label="",style="dashed", color="red", weight=0]; 358[label="error []",fontsize=16,color="magenta"];214[label="vuz24",fontsize=16,color="green",shape="box"];215[label="primQuotInt (Neg vuz220) (gcd2 False vuz24 vuz23)",fontsize=16,color="black",shape="box"];215 -> 222[label="",style="solid", color="black", weight=3]; 216[label="primQuotInt (Neg vuz220) (gcd2 True vuz24 vuz23)",fontsize=16,color="black",shape="box"];216 -> 223[label="",style="solid", color="black", weight=3]; 334[label="gcd0 vuz21 vuz20",fontsize=16,color="black",shape="triangle"];334 -> 350[label="",style="solid", color="black", weight=3]; 335 -> 351[label="",style="dashed", color="red", weight=0]; 335[label="gcd1 (vuz20 == fromInt (Pos Zero)) vuz21 vuz20",fontsize=16,color="magenta"];335 -> 352[label="",style="dashed", color="magenta", weight=3]; 346[label="primQuotInt (Pos vuz1900) (Pos vuz3600)",fontsize=16,color="burlywood",shape="box"];1099[label="vuz3600/Succ vuz36000",fontsize=10,color="white",style="solid",shape="box"];346 -> 1099[label="",style="solid", color="burlywood", weight=9]; 1099 -> 362[label="",style="solid", color="burlywood", weight=3]; 1100[label="vuz3600/Zero",fontsize=10,color="white",style="solid",shape="box"];346 -> 1100[label="",style="solid", color="burlywood", weight=9]; 1100 -> 363[label="",style="solid", color="burlywood", weight=3]; 347[label="primQuotInt (Pos vuz1900) (Neg vuz3600)",fontsize=16,color="burlywood",shape="box"];1101[label="vuz3600/Succ vuz36000",fontsize=10,color="white",style="solid",shape="box"];347 -> 1101[label="",style="solid", color="burlywood", weight=9]; 1101 -> 364[label="",style="solid", color="burlywood", weight=3]; 1102[label="vuz3600/Zero",fontsize=10,color="white",style="solid",shape="box"];347 -> 1102[label="",style="solid", color="burlywood", weight=9]; 1102 -> 365[label="",style="solid", color="burlywood", weight=3]; 348[label="primQuotInt (Neg vuz1900) (Pos vuz3600)",fontsize=16,color="burlywood",shape="box"];1103[label="vuz3600/Succ vuz36000",fontsize=10,color="white",style="solid",shape="box"];348 -> 1103[label="",style="solid", color="burlywood", weight=9]; 1103 -> 366[label="",style="solid", color="burlywood", weight=3]; 1104[label="vuz3600/Zero",fontsize=10,color="white",style="solid",shape="box"];348 -> 1104[label="",style="solid", color="burlywood", weight=9]; 1104 -> 367[label="",style="solid", color="burlywood", weight=3]; 349[label="primQuotInt (Neg vuz1900) (Neg vuz3600)",fontsize=16,color="burlywood",shape="box"];1105[label="vuz3600/Succ vuz36000",fontsize=10,color="white",style="solid",shape="box"];349 -> 1105[label="",style="solid", color="burlywood", weight=9]; 1105 -> 368[label="",style="solid", color="burlywood", weight=3]; 1106[label="vuz3600/Zero",fontsize=10,color="white",style="solid",shape="box"];349 -> 1106[label="",style="solid", color="burlywood", weight=9]; 1106 -> 369[label="",style="solid", color="burlywood", weight=3]; 359[label="vuz24",fontsize=16,color="green",shape="box"];360[label="gcd2 False vuz24 vuz23",fontsize=16,color="black",shape="box"];360 -> 380[label="",style="solid", color="black", weight=3]; 361[label="gcd2 True vuz24 vuz23",fontsize=16,color="black",shape="box"];361 -> 381[label="",style="solid", color="black", weight=3]; 377[label="primDivNatS vuz220 (Succ vuz4000)",fontsize=16,color="burlywood",shape="triangle"];1107[label="vuz220/Succ vuz2200",fontsize=10,color="white",style="solid",shape="box"];377 -> 1107[label="",style="solid", color="burlywood", weight=9]; 1107 -> 397[label="",style="solid", color="burlywood", weight=3]; 1108[label="vuz220/Zero",fontsize=10,color="white",style="solid",shape="box"];377 -> 1108[label="",style="solid", color="burlywood", weight=9]; 1108 -> 398[label="",style="solid", color="burlywood", weight=3]; 378[label="error []",fontsize=16,color="red",shape="box"];379 -> 377[label="",style="dashed", color="red", weight=0]; 379[label="primDivNatS vuz220 (Succ vuz4000)",fontsize=16,color="magenta"];379 -> 399[label="",style="dashed", color="magenta", weight=3]; 222[label="primQuotInt (Neg vuz220) (gcd0 vuz24 vuz23)",fontsize=16,color="black",shape="triangle"];222 -> 231[label="",style="solid", color="black", weight=3]; 223 -> 232[label="",style="dashed", color="red", weight=0]; 223[label="primQuotInt (Neg vuz220) (gcd1 (vuz23 == fromInt (Pos Zero)) vuz24 vuz23)",fontsize=16,color="magenta"];223 -> 233[label="",style="dashed", color="magenta", weight=3]; 350[label="gcd0Gcd' (abs vuz21) (abs vuz20)",fontsize=16,color="black",shape="box"];350 -> 370[label="",style="solid", color="black", weight=3]; 352 -> 76[label="",style="dashed", color="red", weight=0]; 352[label="vuz20 == fromInt (Pos Zero)",fontsize=16,color="magenta"];352 -> 371[label="",style="dashed", color="magenta", weight=3]; 351[label="gcd1 vuz41 vuz21 vuz20",fontsize=16,color="burlywood",shape="triangle"];1109[label="vuz41/False",fontsize=10,color="white",style="solid",shape="box"];351 -> 1109[label="",style="solid", color="burlywood", weight=9]; 1109 -> 372[label="",style="solid", color="burlywood", weight=3]; 1110[label="vuz41/True",fontsize=10,color="white",style="solid",shape="box"];351 -> 1110[label="",style="solid", color="burlywood", weight=9]; 1110 -> 373[label="",style="solid", color="burlywood", weight=3]; 362[label="primQuotInt (Pos vuz1900) (Pos (Succ vuz36000))",fontsize=16,color="black",shape="box"];362 -> 382[label="",style="solid", color="black", weight=3]; 363[label="primQuotInt (Pos vuz1900) (Pos Zero)",fontsize=16,color="black",shape="box"];363 -> 383[label="",style="solid", color="black", weight=3]; 364[label="primQuotInt (Pos vuz1900) (Neg (Succ vuz36000))",fontsize=16,color="black",shape="box"];364 -> 384[label="",style="solid", color="black", weight=3]; 365[label="primQuotInt (Pos vuz1900) (Neg Zero)",fontsize=16,color="black",shape="box"];365 -> 385[label="",style="solid", color="black", weight=3]; 366[label="primQuotInt (Neg vuz1900) (Pos (Succ vuz36000))",fontsize=16,color="black",shape="box"];366 -> 386[label="",style="solid", color="black", weight=3]; 367[label="primQuotInt (Neg vuz1900) (Pos Zero)",fontsize=16,color="black",shape="box"];367 -> 387[label="",style="solid", color="black", weight=3]; 368[label="primQuotInt (Neg vuz1900) (Neg (Succ vuz36000))",fontsize=16,color="black",shape="box"];368 -> 388[label="",style="solid", color="black", weight=3]; 369[label="primQuotInt (Neg vuz1900) (Neg Zero)",fontsize=16,color="black",shape="box"];369 -> 389[label="",style="solid", color="black", weight=3]; 380[label="gcd0 vuz24 vuz23",fontsize=16,color="black",shape="triangle"];380 -> 400[label="",style="solid", color="black", weight=3]; 381 -> 401[label="",style="dashed", color="red", weight=0]; 381[label="gcd1 (vuz23 == fromInt (Pos Zero)) vuz24 vuz23",fontsize=16,color="magenta"];381 -> 402[label="",style="dashed", color="magenta", weight=3]; 397[label="primDivNatS (Succ vuz2200) (Succ vuz4000)",fontsize=16,color="black",shape="box"];397 -> 403[label="",style="solid", color="black", weight=3]; 398[label="primDivNatS Zero (Succ vuz4000)",fontsize=16,color="black",shape="box"];398 -> 404[label="",style="solid", color="black", weight=3]; 399[label="vuz4000",fontsize=16,color="green",shape="box"];231[label="primQuotInt (Neg vuz220) (gcd0Gcd' (abs vuz24) (abs vuz23))",fontsize=16,color="black",shape="box"];231 -> 241[label="",style="solid", color="black", weight=3]; 233 -> 78[label="",style="dashed", color="red", weight=0]; 233[label="vuz23 == fromInt (Pos Zero)",fontsize=16,color="magenta"];233 -> 242[label="",style="dashed", color="magenta", weight=3]; 232[label="primQuotInt (Neg vuz220) (gcd1 vuz30 vuz24 vuz23)",fontsize=16,color="burlywood",shape="triangle"];1111[label="vuz30/False",fontsize=10,color="white",style="solid",shape="box"];232 -> 1111[label="",style="solid", color="burlywood", weight=9]; 1111 -> 243[label="",style="solid", color="burlywood", weight=3]; 1112[label="vuz30/True",fontsize=10,color="white",style="solid",shape="box"];232 -> 1112[label="",style="solid", color="burlywood", weight=9]; 1112 -> 244[label="",style="solid", color="burlywood", weight=3]; 370[label="gcd0Gcd'2 (abs vuz21) (abs vuz20)",fontsize=16,color="black",shape="box"];370 -> 390[label="",style="solid", color="black", weight=3]; 371[label="vuz20",fontsize=16,color="green",shape="box"];372[label="gcd1 False vuz21 vuz20",fontsize=16,color="black",shape="box"];372 -> 391[label="",style="solid", color="black", weight=3]; 373[label="gcd1 True vuz21 vuz20",fontsize=16,color="black",shape="box"];373 -> 392[label="",style="solid", color="black", weight=3]; 382[label="Pos (primDivNatS vuz1900 (Succ vuz36000))",fontsize=16,color="green",shape="box"];382 -> 405[label="",style="dashed", color="green", weight=3]; 383 -> 356[label="",style="dashed", color="red", weight=0]; 383[label="error []",fontsize=16,color="magenta"];384[label="Neg (primDivNatS vuz1900 (Succ vuz36000))",fontsize=16,color="green",shape="box"];384 -> 406[label="",style="dashed", color="green", weight=3]; 385 -> 356[label="",style="dashed", color="red", weight=0]; 385[label="error []",fontsize=16,color="magenta"];386[label="Neg (primDivNatS vuz1900 (Succ vuz36000))",fontsize=16,color="green",shape="box"];386 -> 407[label="",style="dashed", color="green", weight=3]; 387 -> 356[label="",style="dashed", color="red", weight=0]; 387[label="error []",fontsize=16,color="magenta"];388[label="Pos (primDivNatS vuz1900 (Succ vuz36000))",fontsize=16,color="green",shape="box"];388 -> 408[label="",style="dashed", color="green", weight=3]; 389 -> 356[label="",style="dashed", color="red", weight=0]; 389[label="error []",fontsize=16,color="magenta"];400 -> 409[label="",style="dashed", color="red", weight=0]; 400[label="gcd0Gcd' (abs vuz24) (abs vuz23)",fontsize=16,color="magenta"];400 -> 410[label="",style="dashed", color="magenta", weight=3]; 400 -> 411[label="",style="dashed", color="magenta", weight=3]; 402 -> 78[label="",style="dashed", color="red", weight=0]; 402[label="vuz23 == fromInt (Pos Zero)",fontsize=16,color="magenta"];402 -> 414[label="",style="dashed", color="magenta", weight=3]; 401[label="gcd1 vuz45 vuz24 vuz23",fontsize=16,color="burlywood",shape="triangle"];1113[label="vuz45/False",fontsize=10,color="white",style="solid",shape="box"];401 -> 1113[label="",style="solid", color="burlywood", weight=9]; 1113 -> 415[label="",style="solid", color="burlywood", weight=3]; 1114[label="vuz45/True",fontsize=10,color="white",style="solid",shape="box"];401 -> 1114[label="",style="solid", color="burlywood", weight=9]; 1114 -> 416[label="",style="solid", color="burlywood", weight=3]; 403[label="primDivNatS0 vuz2200 vuz4000 (primGEqNatS vuz2200 vuz4000)",fontsize=16,color="burlywood",shape="box"];1115[label="vuz2200/Succ vuz22000",fontsize=10,color="white",style="solid",shape="box"];403 -> 1115[label="",style="solid", color="burlywood", weight=9]; 1115 -> 417[label="",style="solid", color="burlywood", weight=3]; 1116[label="vuz2200/Zero",fontsize=10,color="white",style="solid",shape="box"];403 -> 1116[label="",style="solid", color="burlywood", weight=9]; 1116 -> 418[label="",style="solid", color="burlywood", weight=3]; 404[label="Zero",fontsize=16,color="green",shape="box"];241[label="primQuotInt (Neg vuz220) (gcd0Gcd'2 (abs vuz24) (abs vuz23))",fontsize=16,color="black",shape="box"];241 -> 251[label="",style="solid", color="black", weight=3]; 242[label="vuz23",fontsize=16,color="green",shape="box"];243[label="primQuotInt (Neg vuz220) (gcd1 False vuz24 vuz23)",fontsize=16,color="black",shape="box"];243 -> 252[label="",style="solid", color="black", weight=3]; 244[label="primQuotInt (Neg vuz220) (gcd1 True vuz24 vuz23)",fontsize=16,color="black",shape="box"];244 -> 253[label="",style="solid", color="black", weight=3]; 390 -> 419[label="",style="dashed", color="red", weight=0]; 390[label="gcd0Gcd'1 (abs vuz20 == fromInt (Pos Zero)) (abs vuz21) (abs vuz20)",fontsize=16,color="magenta"];390 -> 420[label="",style="dashed", color="magenta", weight=3]; 391 -> 334[label="",style="dashed", color="red", weight=0]; 391[label="gcd0 vuz21 vuz20",fontsize=16,color="magenta"];392[label="error []",fontsize=16,color="black",shape="box"];392 -> 421[label="",style="solid", color="black", weight=3]; 405 -> 377[label="",style="dashed", color="red", weight=0]; 405[label="primDivNatS vuz1900 (Succ vuz36000)",fontsize=16,color="magenta"];405 -> 422[label="",style="dashed", color="magenta", weight=3]; 405 -> 423[label="",style="dashed", color="magenta", weight=3]; 406 -> 377[label="",style="dashed", color="red", weight=0]; 406[label="primDivNatS vuz1900 (Succ vuz36000)",fontsize=16,color="magenta"];406 -> 424[label="",style="dashed", color="magenta", weight=3]; 406 -> 425[label="",style="dashed", color="magenta", weight=3]; 407 -> 377[label="",style="dashed", color="red", weight=0]; 407[label="primDivNatS vuz1900 (Succ vuz36000)",fontsize=16,color="magenta"];407 -> 426[label="",style="dashed", color="magenta", weight=3]; 407 -> 427[label="",style="dashed", color="magenta", weight=3]; 408 -> 377[label="",style="dashed", color="red", weight=0]; 408[label="primDivNatS vuz1900 (Succ vuz36000)",fontsize=16,color="magenta"];408 -> 428[label="",style="dashed", color="magenta", weight=3]; 408 -> 429[label="",style="dashed", color="magenta", weight=3]; 410 -> 266[label="",style="dashed", color="red", weight=0]; 410[label="abs vuz23",fontsize=16,color="magenta"];411 -> 266[label="",style="dashed", color="red", weight=0]; 411[label="abs vuz24",fontsize=16,color="magenta"];411 -> 430[label="",style="dashed", color="magenta", weight=3]; 409[label="gcd0Gcd' vuz47 vuz46",fontsize=16,color="black",shape="triangle"];409 -> 431[label="",style="solid", color="black", weight=3]; 414[label="vuz23",fontsize=16,color="green",shape="box"];415[label="gcd1 False vuz24 vuz23",fontsize=16,color="black",shape="box"];415 -> 432[label="",style="solid", color="black", weight=3]; 416[label="gcd1 True vuz24 vuz23",fontsize=16,color="black",shape="box"];416 -> 433[label="",style="solid", color="black", weight=3]; 417[label="primDivNatS0 (Succ vuz22000) vuz4000 (primGEqNatS (Succ vuz22000) vuz4000)",fontsize=16,color="burlywood",shape="box"];1117[label="vuz4000/Succ vuz40000",fontsize=10,color="white",style="solid",shape="box"];417 -> 1117[label="",style="solid", color="burlywood", weight=9]; 1117 -> 434[label="",style="solid", color="burlywood", weight=3]; 1118[label="vuz4000/Zero",fontsize=10,color="white",style="solid",shape="box"];417 -> 1118[label="",style="solid", color="burlywood", weight=9]; 1118 -> 435[label="",style="solid", color="burlywood", weight=3]; 418[label="primDivNatS0 Zero vuz4000 (primGEqNatS Zero vuz4000)",fontsize=16,color="burlywood",shape="box"];1119[label="vuz4000/Succ vuz40000",fontsize=10,color="white",style="solid",shape="box"];418 -> 1119[label="",style="solid", color="burlywood", weight=9]; 1119 -> 436[label="",style="solid", color="burlywood", weight=3]; 1120[label="vuz4000/Zero",fontsize=10,color="white",style="solid",shape="box"];418 -> 1120[label="",style="solid", color="burlywood", weight=9]; 1120 -> 437[label="",style="solid", color="burlywood", weight=3]; 251 -> 260[label="",style="dashed", color="red", weight=0]; 251[label="primQuotInt (Neg vuz220) (gcd0Gcd'1 (abs vuz23 == fromInt (Pos Zero)) (abs vuz24) (abs vuz23))",fontsize=16,color="magenta"];251 -> 261[label="",style="dashed", color="magenta", weight=3]; 252 -> 222[label="",style="dashed", color="red", weight=0]; 252[label="primQuotInt (Neg vuz220) (gcd0 vuz24 vuz23)",fontsize=16,color="magenta"];253[label="primQuotInt (Neg vuz220) (error [])",fontsize=16,color="black",shape="box"];253 -> 262[label="",style="solid", color="black", weight=3]; 420 -> 76[label="",style="dashed", color="red", weight=0]; 420[label="abs vuz20 == fromInt (Pos Zero)",fontsize=16,color="magenta"];420 -> 438[label="",style="dashed", color="magenta", weight=3]; 419[label="gcd0Gcd'1 vuz48 (abs vuz21) (abs vuz20)",fontsize=16,color="burlywood",shape="triangle"];1121[label="vuz48/False",fontsize=10,color="white",style="solid",shape="box"];419 -> 1121[label="",style="solid", color="burlywood", weight=9]; 1121 -> 439[label="",style="solid", color="burlywood", weight=3]; 1122[label="vuz48/True",fontsize=10,color="white",style="solid",shape="box"];419 -> 1122[label="",style="solid", color="burlywood", weight=9]; 1122 -> 440[label="",style="solid", color="burlywood", weight=3]; 421[label="error []",fontsize=16,color="red",shape="box"];422[label="vuz1900",fontsize=16,color="green",shape="box"];423[label="vuz36000",fontsize=16,color="green",shape="box"];424[label="vuz1900",fontsize=16,color="green",shape="box"];425[label="vuz36000",fontsize=16,color="green",shape="box"];426[label="vuz1900",fontsize=16,color="green",shape="box"];427[label="vuz36000",fontsize=16,color="green",shape="box"];428[label="vuz1900",fontsize=16,color="green",shape="box"];429[label="vuz36000",fontsize=16,color="green",shape="box"];266[label="abs vuz23",fontsize=16,color="black",shape="triangle"];266 -> 295[label="",style="solid", color="black", weight=3]; 430[label="vuz24",fontsize=16,color="green",shape="box"];431[label="gcd0Gcd'2 vuz47 vuz46",fontsize=16,color="black",shape="box"];431 -> 443[label="",style="solid", color="black", weight=3]; 432 -> 380[label="",style="dashed", color="red", weight=0]; 432[label="gcd0 vuz24 vuz23",fontsize=16,color="magenta"];433 -> 356[label="",style="dashed", color="red", weight=0]; 433[label="error []",fontsize=16,color="magenta"];434[label="primDivNatS0 (Succ vuz22000) (Succ vuz40000) (primGEqNatS (Succ vuz22000) (Succ vuz40000))",fontsize=16,color="black",shape="box"];434 -> 444[label="",style="solid", color="black", weight=3]; 435[label="primDivNatS0 (Succ vuz22000) Zero (primGEqNatS (Succ vuz22000) Zero)",fontsize=16,color="black",shape="box"];435 -> 445[label="",style="solid", color="black", weight=3]; 436[label="primDivNatS0 Zero (Succ vuz40000) (primGEqNatS Zero (Succ vuz40000))",fontsize=16,color="black",shape="box"];436 -> 446[label="",style="solid", color="black", weight=3]; 437[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];437 -> 447[label="",style="solid", color="black", weight=3]; 261 -> 78[label="",style="dashed", color="red", weight=0]; 261[label="abs vuz23 == fromInt (Pos Zero)",fontsize=16,color="magenta"];261 -> 269[label="",style="dashed", color="magenta", weight=3]; 260[label="primQuotInt (Neg vuz220) (gcd0Gcd'1 vuz33 (abs vuz24) (abs vuz23))",fontsize=16,color="burlywood",shape="triangle"];1123[label="vuz33/False",fontsize=10,color="white",style="solid",shape="box"];260 -> 1123[label="",style="solid", color="burlywood", weight=9]; 1123 -> 270[label="",style="solid", color="burlywood", weight=3]; 1124[label="vuz33/True",fontsize=10,color="white",style="solid",shape="box"];260 -> 1124[label="",style="solid", color="burlywood", weight=9]; 1124 -> 271[label="",style="solid", color="burlywood", weight=3]; 262[label="error []",fontsize=16,color="red",shape="box"];438[label="abs vuz20",fontsize=16,color="black",shape="triangle"];438 -> 448[label="",style="solid", color="black", weight=3]; 439[label="gcd0Gcd'1 False (abs vuz21) (abs vuz20)",fontsize=16,color="black",shape="box"];439 -> 449[label="",style="solid", color="black", weight=3]; 440[label="gcd0Gcd'1 True (abs vuz21) (abs vuz20)",fontsize=16,color="black",shape="box"];440 -> 450[label="",style="solid", color="black", weight=3]; 295[label="absReal vuz23",fontsize=16,color="black",shape="box"];295 -> 302[label="",style="solid", color="black", weight=3]; 443 -> 454[label="",style="dashed", color="red", weight=0]; 443[label="gcd0Gcd'1 (vuz46 == fromInt (Pos Zero)) vuz47 vuz46",fontsize=16,color="magenta"];443 -> 455[label="",style="dashed", color="magenta", weight=3]; 444 -> 791[label="",style="dashed", color="red", weight=0]; 444[label="primDivNatS0 (Succ vuz22000) (Succ vuz40000) (primGEqNatS vuz22000 vuz40000)",fontsize=16,color="magenta"];444 -> 792[label="",style="dashed", color="magenta", weight=3]; 444 -> 793[label="",style="dashed", color="magenta", weight=3]; 444 -> 794[label="",style="dashed", color="magenta", weight=3]; 444 -> 795[label="",style="dashed", color="magenta", weight=3]; 445[label="primDivNatS0 (Succ vuz22000) Zero True",fontsize=16,color="black",shape="box"];445 -> 458[label="",style="solid", color="black", weight=3]; 446[label="primDivNatS0 Zero (Succ vuz40000) False",fontsize=16,color="black",shape="box"];446 -> 459[label="",style="solid", color="black", weight=3]; 447[label="primDivNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];447 -> 460[label="",style="solid", color="black", weight=3]; 269 -> 266[label="",style="dashed", color="red", weight=0]; 269[label="abs vuz23",fontsize=16,color="magenta"];270[label="primQuotInt (Neg vuz220) (gcd0Gcd'1 False (abs vuz24) (abs vuz23))",fontsize=16,color="black",shape="box"];270 -> 298[label="",style="solid", color="black", weight=3]; 271[label="primQuotInt (Neg vuz220) (gcd0Gcd'1 True (abs vuz24) (abs vuz23))",fontsize=16,color="black",shape="box"];271 -> 299[label="",style="solid", color="black", weight=3]; 448[label="absReal vuz20",fontsize=16,color="black",shape="box"];448 -> 461[label="",style="solid", color="black", weight=3]; 449 -> 462[label="",style="dashed", color="red", weight=0]; 449[label="gcd0Gcd'0 (abs vuz21) (abs vuz20)",fontsize=16,color="magenta"];449 -> 463[label="",style="dashed", color="magenta", weight=3]; 449 -> 464[label="",style="dashed", color="magenta", weight=3]; 450 -> 438[label="",style="dashed", color="red", weight=0]; 450[label="abs vuz21",fontsize=16,color="magenta"];450 -> 465[label="",style="dashed", color="magenta", weight=3]; 302[label="absReal2 vuz23",fontsize=16,color="black",shape="box"];302 -> 340[label="",style="solid", color="black", weight=3]; 455 -> 78[label="",style="dashed", color="red", weight=0]; 455[label="vuz46 == fromInt (Pos Zero)",fontsize=16,color="magenta"];455 -> 466[label="",style="dashed", color="magenta", weight=3]; 454[label="gcd0Gcd'1 vuz49 vuz47 vuz46",fontsize=16,color="burlywood",shape="triangle"];1125[label="vuz49/False",fontsize=10,color="white",style="solid",shape="box"];454 -> 1125[label="",style="solid", color="burlywood", weight=9]; 1125 -> 467[label="",style="solid", color="burlywood", weight=3]; 1126[label="vuz49/True",fontsize=10,color="white",style="solid",shape="box"];454 -> 1126[label="",style="solid", color="burlywood", weight=9]; 1126 -> 468[label="",style="solid", color="burlywood", weight=3]; 792[label="vuz40000",fontsize=16,color="green",shape="box"];793[label="vuz22000",fontsize=16,color="green",shape="box"];794[label="vuz22000",fontsize=16,color="green",shape="box"];795[label="vuz40000",fontsize=16,color="green",shape="box"];791[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS vuz71 vuz72)",fontsize=16,color="burlywood",shape="triangle"];1127[label="vuz71/Succ vuz710",fontsize=10,color="white",style="solid",shape="box"];791 -> 1127[label="",style="solid", color="burlywood", weight=9]; 1127 -> 824[label="",style="solid", color="burlywood", weight=3]; 1128[label="vuz71/Zero",fontsize=10,color="white",style="solid",shape="box"];791 -> 1128[label="",style="solid", color="burlywood", weight=9]; 1128 -> 825[label="",style="solid", color="burlywood", weight=3]; 458[label="Succ (primDivNatS (primMinusNatS (Succ vuz22000) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];458 -> 473[label="",style="dashed", color="green", weight=3]; 459[label="Zero",fontsize=16,color="green",shape="box"];460[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];460 -> 474[label="",style="dashed", color="green", weight=3]; 298 -> 308[label="",style="dashed", color="red", weight=0]; 298[label="primQuotInt (Neg vuz220) (gcd0Gcd'0 (abs vuz24) (abs vuz23))",fontsize=16,color="magenta"];298 -> 336[label="",style="dashed", color="magenta", weight=3]; 298 -> 337[label="",style="dashed", color="magenta", weight=3]; 299 -> 308[label="",style="dashed", color="red", weight=0]; 299[label="primQuotInt (Neg vuz220) (abs vuz24)",fontsize=16,color="magenta"];299 -> 338[label="",style="dashed", color="magenta", weight=3]; 299 -> 339[label="",style="dashed", color="magenta", weight=3]; 461[label="absReal2 vuz20",fontsize=16,color="black",shape="box"];461 -> 475[label="",style="solid", color="black", weight=3]; 463 -> 438[label="",style="dashed", color="red", weight=0]; 463[label="abs vuz20",fontsize=16,color="magenta"];464 -> 438[label="",style="dashed", color="red", weight=0]; 464[label="abs vuz21",fontsize=16,color="magenta"];464 -> 476[label="",style="dashed", color="magenta", weight=3]; 462[label="gcd0Gcd'0 vuz51 vuz50",fontsize=16,color="black",shape="triangle"];462 -> 477[label="",style="solid", color="black", weight=3]; 465[label="vuz21",fontsize=16,color="green",shape="box"];340[label="absReal1 vuz23 (vuz23 >= fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];340 -> 396[label="",style="solid", color="black", weight=3]; 466[label="vuz46",fontsize=16,color="green",shape="box"];467[label="gcd0Gcd'1 False vuz47 vuz46",fontsize=16,color="black",shape="box"];467 -> 484[label="",style="solid", color="black", weight=3]; 468[label="gcd0Gcd'1 True vuz47 vuz46",fontsize=16,color="black",shape="box"];468 -> 485[label="",style="solid", color="black", weight=3]; 824[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS (Succ vuz710) vuz72)",fontsize=16,color="burlywood",shape="box"];1129[label="vuz72/Succ vuz720",fontsize=10,color="white",style="solid",shape="box"];824 -> 1129[label="",style="solid", color="burlywood", weight=9]; 1129 -> 832[label="",style="solid", color="burlywood", weight=3]; 1130[label="vuz72/Zero",fontsize=10,color="white",style="solid",shape="box"];824 -> 1130[label="",style="solid", color="burlywood", weight=9]; 1130 -> 833[label="",style="solid", color="burlywood", weight=3]; 825[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS Zero vuz72)",fontsize=16,color="burlywood",shape="box"];1131[label="vuz72/Succ vuz720",fontsize=10,color="white",style="solid",shape="box"];825 -> 1131[label="",style="solid", color="burlywood", weight=9]; 1131 -> 834[label="",style="solid", color="burlywood", weight=3]; 1132[label="vuz72/Zero",fontsize=10,color="white",style="solid",shape="box"];825 -> 1132[label="",style="solid", color="burlywood", weight=9]; 1132 -> 835[label="",style="solid", color="burlywood", weight=3]; 473 -> 377[label="",style="dashed", color="red", weight=0]; 473[label="primDivNatS (primMinusNatS (Succ vuz22000) Zero) (Succ Zero)",fontsize=16,color="magenta"];473 -> 490[label="",style="dashed", color="magenta", weight=3]; 473 -> 491[label="",style="dashed", color="magenta", weight=3]; 474 -> 377[label="",style="dashed", color="red", weight=0]; 474[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];474 -> 492[label="",style="dashed", color="magenta", weight=3]; 474 -> 493[label="",style="dashed", color="magenta", weight=3]; 336 -> 374[label="",style="dashed", color="red", weight=0]; 336[label="gcd0Gcd'0 (abs vuz24) (abs vuz23)",fontsize=16,color="magenta"];336 -> 375[label="",style="dashed", color="magenta", weight=3]; 336 -> 376[label="",style="dashed", color="magenta", weight=3]; 337[label="Neg vuz220",fontsize=16,color="green",shape="box"];338 -> 266[label="",style="dashed", color="red", weight=0]; 338[label="abs vuz24",fontsize=16,color="magenta"];338 -> 393[label="",style="dashed", color="magenta", weight=3]; 339[label="Neg vuz220",fontsize=16,color="green",shape="box"];475[label="absReal1 vuz20 (vuz20 >= fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];475 -> 494[label="",style="solid", color="black", weight=3]; 476[label="vuz21",fontsize=16,color="green",shape="box"];477[label="gcd0Gcd' vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="black",shape="box"];477 -> 495[label="",style="solid", color="black", weight=3]; 396[label="absReal1 vuz23 (compare vuz23 (fromInt (Pos Zero)) /= LT)",fontsize=16,color="black",shape="box"];396 -> 441[label="",style="solid", color="black", weight=3]; 484 -> 374[label="",style="dashed", color="red", weight=0]; 484[label="gcd0Gcd'0 vuz47 vuz46",fontsize=16,color="magenta"];484 -> 508[label="",style="dashed", color="magenta", weight=3]; 484 -> 509[label="",style="dashed", color="magenta", weight=3]; 485[label="vuz47",fontsize=16,color="green",shape="box"];832[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS (Succ vuz710) (Succ vuz720))",fontsize=16,color="black",shape="box"];832 -> 844[label="",style="solid", color="black", weight=3]; 833[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS (Succ vuz710) Zero)",fontsize=16,color="black",shape="box"];833 -> 845[label="",style="solid", color="black", weight=3]; 834[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS Zero (Succ vuz720))",fontsize=16,color="black",shape="box"];834 -> 846[label="",style="solid", color="black", weight=3]; 835[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];835 -> 847[label="",style="solid", color="black", weight=3]; 490[label="primMinusNatS (Succ vuz22000) Zero",fontsize=16,color="black",shape="triangle"];490 -> 515[label="",style="solid", color="black", weight=3]; 491[label="Zero",fontsize=16,color="green",shape="box"];492[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="triangle"];492 -> 516[label="",style="solid", color="black", weight=3]; 493[label="Zero",fontsize=16,color="green",shape="box"];375 -> 266[label="",style="dashed", color="red", weight=0]; 375[label="abs vuz24",fontsize=16,color="magenta"];375 -> 394[label="",style="dashed", color="magenta", weight=3]; 376 -> 266[label="",style="dashed", color="red", weight=0]; 376[label="abs vuz23",fontsize=16,color="magenta"];374[label="gcd0Gcd'0 vuz44 vuz43",fontsize=16,color="black",shape="triangle"];374 -> 395[label="",style="solid", color="black", weight=3]; 393[label="vuz24",fontsize=16,color="green",shape="box"];494[label="absReal1 vuz20 (compare vuz20 (fromInt (Pos Zero)) /= LT)",fontsize=16,color="black",shape="box"];494 -> 517[label="",style="solid", color="black", weight=3]; 495[label="gcd0Gcd'2 vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="black",shape="box"];495 -> 518[label="",style="solid", color="black", weight=3]; 441[label="absReal1 vuz23 (not (compare vuz23 (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];441 -> 451[label="",style="solid", color="black", weight=3]; 508[label="vuz47",fontsize=16,color="green",shape="box"];509[label="vuz46",fontsize=16,color="green",shape="box"];844 -> 791[label="",style="dashed", color="red", weight=0]; 844[label="primDivNatS0 (Succ vuz69) (Succ vuz70) (primGEqNatS vuz710 vuz720)",fontsize=16,color="magenta"];844 -> 854[label="",style="dashed", color="magenta", weight=3]; 844 -> 855[label="",style="dashed", color="magenta", weight=3]; 845[label="primDivNatS0 (Succ vuz69) (Succ vuz70) True",fontsize=16,color="black",shape="triangle"];845 -> 856[label="",style="solid", color="black", weight=3]; 846[label="primDivNatS0 (Succ vuz69) (Succ vuz70) False",fontsize=16,color="black",shape="box"];846 -> 857[label="",style="solid", color="black", weight=3]; 847 -> 845[label="",style="dashed", color="red", weight=0]; 847[label="primDivNatS0 (Succ vuz69) (Succ vuz70) True",fontsize=16,color="magenta"];515[label="Succ vuz22000",fontsize=16,color="green",shape="box"];516[label="Zero",fontsize=16,color="green",shape="box"];394[label="vuz24",fontsize=16,color="green",shape="box"];395 -> 409[label="",style="dashed", color="red", weight=0]; 395[label="gcd0Gcd' vuz43 (vuz44 `rem` vuz43)",fontsize=16,color="magenta"];395 -> 412[label="",style="dashed", color="magenta", weight=3]; 395 -> 413[label="",style="dashed", color="magenta", weight=3]; 517[label="absReal1 vuz20 (not (compare vuz20 (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];1133[label="vuz20/Integer vuz200",fontsize=10,color="white",style="solid",shape="box"];517 -> 1133[label="",style="solid", color="burlywood", weight=9]; 1133 -> 537[label="",style="solid", color="burlywood", weight=3]; 518 -> 538[label="",style="dashed", color="red", weight=0]; 518[label="gcd0Gcd'1 (vuz51 `rem` vuz50 == fromInt (Pos Zero)) vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="magenta"];518 -> 539[label="",style="dashed", color="magenta", weight=3]; 451[label="absReal1 vuz23 (not (primCmpInt vuz23 (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];1134[label="vuz23/Pos vuz230",fontsize=10,color="white",style="solid",shape="box"];451 -> 1134[label="",style="solid", color="burlywood", weight=9]; 1134 -> 478[label="",style="solid", color="burlywood", weight=3]; 1135[label="vuz23/Neg vuz230",fontsize=10,color="white",style="solid",shape="box"];451 -> 1135[label="",style="solid", color="burlywood", weight=9]; 1135 -> 479[label="",style="solid", color="burlywood", weight=3]; 854[label="vuz710",fontsize=16,color="green",shape="box"];855[label="vuz720",fontsize=16,color="green",shape="box"];856[label="Succ (primDivNatS (primMinusNatS (Succ vuz69) (Succ vuz70)) (Succ (Succ vuz70)))",fontsize=16,color="green",shape="box"];856 -> 864[label="",style="dashed", color="green", weight=3]; 857[label="Zero",fontsize=16,color="green",shape="box"];412[label="vuz44 `rem` vuz43",fontsize=16,color="black",shape="box"];412 -> 442[label="",style="solid", color="black", weight=3]; 413[label="vuz43",fontsize=16,color="green",shape="box"];537[label="absReal1 (Integer vuz200) (not (compare (Integer vuz200) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];537 -> 548[label="",style="solid", color="black", weight=3]; 539 -> 76[label="",style="dashed", color="red", weight=0]; 539[label="vuz51 `rem` vuz50 == fromInt (Pos Zero)",fontsize=16,color="magenta"];539 -> 549[label="",style="dashed", color="magenta", weight=3]; 538[label="gcd0Gcd'1 vuz52 vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="burlywood",shape="triangle"];1136[label="vuz52/False",fontsize=10,color="white",style="solid",shape="box"];538 -> 1136[label="",style="solid", color="burlywood", weight=9]; 1136 -> 550[label="",style="solid", color="burlywood", weight=3]; 1137[label="vuz52/True",fontsize=10,color="white",style="solid",shape="box"];538 -> 1137[label="",style="solid", color="burlywood", weight=9]; 1137 -> 551[label="",style="solid", color="burlywood", weight=3]; 478[label="absReal1 (Pos vuz230) (not (primCmpInt (Pos vuz230) (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];1138[label="vuz230/Succ vuz2300",fontsize=10,color="white",style="solid",shape="box"];478 -> 1138[label="",style="solid", color="burlywood", weight=9]; 1138 -> 496[label="",style="solid", color="burlywood", weight=3]; 1139[label="vuz230/Zero",fontsize=10,color="white",style="solid",shape="box"];478 -> 1139[label="",style="solid", color="burlywood", weight=9]; 1139 -> 497[label="",style="solid", color="burlywood", weight=3]; 479[label="absReal1 (Neg vuz230) (not (primCmpInt (Neg vuz230) (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];1140[label="vuz230/Succ vuz2300",fontsize=10,color="white",style="solid",shape="box"];479 -> 1140[label="",style="solid", color="burlywood", weight=9]; 1140 -> 498[label="",style="solid", color="burlywood", weight=3]; 1141[label="vuz230/Zero",fontsize=10,color="white",style="solid",shape="box"];479 -> 1141[label="",style="solid", color="burlywood", weight=9]; 1141 -> 499[label="",style="solid", color="burlywood", weight=3]; 864 -> 377[label="",style="dashed", color="red", weight=0]; 864[label="primDivNatS (primMinusNatS (Succ vuz69) (Succ vuz70)) (Succ (Succ vuz70))",fontsize=16,color="magenta"];864 -> 873[label="",style="dashed", color="magenta", weight=3]; 864 -> 874[label="",style="dashed", color="magenta", weight=3]; 442[label="primRemInt vuz44 vuz43",fontsize=16,color="burlywood",shape="triangle"];1142[label="vuz44/Pos vuz440",fontsize=10,color="white",style="solid",shape="box"];442 -> 1142[label="",style="solid", color="burlywood", weight=9]; 1142 -> 452[label="",style="solid", color="burlywood", weight=3]; 1143[label="vuz44/Neg vuz440",fontsize=10,color="white",style="solid",shape="box"];442 -> 1143[label="",style="solid", color="burlywood", weight=9]; 1143 -> 453[label="",style="solid", color="burlywood", weight=3]; 548[label="absReal1 (Integer vuz200) (not (compare (Integer vuz200) (Integer (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];548 -> 567[label="",style="solid", color="black", weight=3]; 549[label="vuz51 `rem` vuz50",fontsize=16,color="burlywood",shape="triangle"];1144[label="vuz51/Integer vuz510",fontsize=10,color="white",style="solid",shape="box"];549 -> 1144[label="",style="solid", color="burlywood", weight=9]; 1144 -> 568[label="",style="solid", color="burlywood", weight=3]; 550[label="gcd0Gcd'1 False vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="black",shape="box"];550 -> 569[label="",style="solid", color="black", weight=3]; 551[label="gcd0Gcd'1 True vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="black",shape="box"];551 -> 570[label="",style="solid", color="black", weight=3]; 496[label="absReal1 (Pos (Succ vuz2300)) (not (primCmpInt (Pos (Succ vuz2300)) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];496 -> 519[label="",style="solid", color="black", weight=3]; 497[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];497 -> 520[label="",style="solid", color="black", weight=3]; 498[label="absReal1 (Neg (Succ vuz2300)) (not (primCmpInt (Neg (Succ vuz2300)) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];498 -> 521[label="",style="solid", color="black", weight=3]; 499[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];499 -> 522[label="",style="solid", color="black", weight=3]; 873[label="primMinusNatS (Succ vuz69) (Succ vuz70)",fontsize=16,color="black",shape="triangle"];873 -> 881[label="",style="solid", color="black", weight=3]; 874[label="Succ vuz70",fontsize=16,color="green",shape="box"];452[label="primRemInt (Pos vuz440) vuz43",fontsize=16,color="burlywood",shape="box"];1145[label="vuz43/Pos vuz430",fontsize=10,color="white",style="solid",shape="box"];452 -> 1145[label="",style="solid", color="burlywood", weight=9]; 1145 -> 480[label="",style="solid", color="burlywood", weight=3]; 1146[label="vuz43/Neg vuz430",fontsize=10,color="white",style="solid",shape="box"];452 -> 1146[label="",style="solid", color="burlywood", weight=9]; 1146 -> 481[label="",style="solid", color="burlywood", weight=3]; 453[label="primRemInt (Neg vuz440) vuz43",fontsize=16,color="burlywood",shape="box"];1147[label="vuz43/Pos vuz430",fontsize=10,color="white",style="solid",shape="box"];453 -> 1147[label="",style="solid", color="burlywood", weight=9]; 1147 -> 482[label="",style="solid", color="burlywood", weight=3]; 1148[label="vuz43/Neg vuz430",fontsize=10,color="white",style="solid",shape="box"];453 -> 1148[label="",style="solid", color="burlywood", weight=9]; 1148 -> 483[label="",style="solid", color="burlywood", weight=3]; 567[label="absReal1 (Integer vuz200) (not (primCmpInt vuz200 (Pos Zero) == LT))",fontsize=16,color="burlywood",shape="box"];1149[label="vuz200/Pos vuz2000",fontsize=10,color="white",style="solid",shape="box"];567 -> 1149[label="",style="solid", color="burlywood", weight=9]; 1149 -> 588[label="",style="solid", color="burlywood", weight=3]; 1150[label="vuz200/Neg vuz2000",fontsize=10,color="white",style="solid",shape="box"];567 -> 1150[label="",style="solid", color="burlywood", weight=9]; 1150 -> 589[label="",style="solid", color="burlywood", weight=3]; 568[label="Integer vuz510 `rem` vuz50",fontsize=16,color="burlywood",shape="box"];1151[label="vuz50/Integer vuz500",fontsize=10,color="white",style="solid",shape="box"];568 -> 1151[label="",style="solid", color="burlywood", weight=9]; 1151 -> 590[label="",style="solid", color="burlywood", weight=3]; 569 -> 462[label="",style="dashed", color="red", weight=0]; 569[label="gcd0Gcd'0 vuz50 (vuz51 `rem` vuz50)",fontsize=16,color="magenta"];569 -> 591[label="",style="dashed", color="magenta", weight=3]; 569 -> 592[label="",style="dashed", color="magenta", weight=3]; 570[label="vuz50",fontsize=16,color="green",shape="box"];519[label="absReal1 (Pos (Succ vuz2300)) (not (primCmpInt (Pos (Succ vuz2300)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];519 -> 552[label="",style="solid", color="black", weight=3]; 520[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];520 -> 553[label="",style="solid", color="black", weight=3]; 521[label="absReal1 (Neg (Succ vuz2300)) (not (primCmpInt (Neg (Succ vuz2300)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];521 -> 554[label="",style="solid", color="black", weight=3]; 522[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];522 -> 555[label="",style="solid", color="black", weight=3]; 881[label="primMinusNatS vuz69 vuz70",fontsize=16,color="burlywood",shape="triangle"];1152[label="vuz69/Succ vuz690",fontsize=10,color="white",style="solid",shape="box"];881 -> 1152[label="",style="solid", color="burlywood", weight=9]; 1152 -> 891[label="",style="solid", color="burlywood", weight=3]; 1153[label="vuz69/Zero",fontsize=10,color="white",style="solid",shape="box"];881 -> 1153[label="",style="solid", color="burlywood", weight=9]; 1153 -> 892[label="",style="solid", color="burlywood", weight=3]; 480[label="primRemInt (Pos vuz440) (Pos vuz430)",fontsize=16,color="burlywood",shape="box"];1154[label="vuz430/Succ vuz4300",fontsize=10,color="white",style="solid",shape="box"];480 -> 1154[label="",style="solid", color="burlywood", weight=9]; 1154 -> 500[label="",style="solid", color="burlywood", weight=3]; 1155[label="vuz430/Zero",fontsize=10,color="white",style="solid",shape="box"];480 -> 1155[label="",style="solid", color="burlywood", weight=9]; 1155 -> 501[label="",style="solid", color="burlywood", weight=3]; 481[label="primRemInt (Pos vuz440) (Neg vuz430)",fontsize=16,color="burlywood",shape="box"];1156[label="vuz430/Succ vuz4300",fontsize=10,color="white",style="solid",shape="box"];481 -> 1156[label="",style="solid", color="burlywood", weight=9]; 1156 -> 502[label="",style="solid", color="burlywood", weight=3]; 1157[label="vuz430/Zero",fontsize=10,color="white",style="solid",shape="box"];481 -> 1157[label="",style="solid", color="burlywood", weight=9]; 1157 -> 503[label="",style="solid", color="burlywood", weight=3]; 482[label="primRemInt (Neg vuz440) (Pos vuz430)",fontsize=16,color="burlywood",shape="box"];1158[label="vuz430/Succ vuz4300",fontsize=10,color="white",style="solid",shape="box"];482 -> 1158[label="",style="solid", color="burlywood", weight=9]; 1158 -> 504[label="",style="solid", color="burlywood", weight=3]; 1159[label="vuz430/Zero",fontsize=10,color="white",style="solid",shape="box"];482 -> 1159[label="",style="solid", color="burlywood", weight=9]; 1159 -> 505[label="",style="solid", color="burlywood", weight=3]; 483[label="primRemInt (Neg vuz440) (Neg vuz430)",fontsize=16,color="burlywood",shape="box"];1160[label="vuz430/Succ vuz4300",fontsize=10,color="white",style="solid",shape="box"];483 -> 1160[label="",style="solid", color="burlywood", weight=9]; 1160 -> 506[label="",style="solid", color="burlywood", weight=3]; 1161[label="vuz430/Zero",fontsize=10,color="white",style="solid",shape="box"];483 -> 1161[label="",style="solid", color="burlywood", weight=9]; 1161 -> 507[label="",style="solid", color="burlywood", weight=3]; 588[label="absReal1 (Integer (Pos vuz2000)) (not (primCmpInt (Pos vuz2000) (Pos Zero) == LT))",fontsize=16,color="burlywood",shape="box"];1162[label="vuz2000/Succ vuz20000",fontsize=10,color="white",style="solid",shape="box"];588 -> 1162[label="",style="solid", color="burlywood", weight=9]; 1162 -> 607[label="",style="solid", color="burlywood", weight=3]; 1163[label="vuz2000/Zero",fontsize=10,color="white",style="solid",shape="box"];588 -> 1163[label="",style="solid", color="burlywood", weight=9]; 1163 -> 608[label="",style="solid", color="burlywood", weight=3]; 589[label="absReal1 (Integer (Neg vuz2000)) (not (primCmpInt (Neg vuz2000) (Pos Zero) == LT))",fontsize=16,color="burlywood",shape="box"];1164[label="vuz2000/Succ vuz20000",fontsize=10,color="white",style="solid",shape="box"];589 -> 1164[label="",style="solid", color="burlywood", weight=9]; 1164 -> 609[label="",style="solid", color="burlywood", weight=3]; 1165[label="vuz2000/Zero",fontsize=10,color="white",style="solid",shape="box"];589 -> 1165[label="",style="solid", color="burlywood", weight=9]; 1165 -> 610[label="",style="solid", color="burlywood", weight=3]; 590[label="Integer vuz510 `rem` Integer vuz500",fontsize=16,color="black",shape="box"];590 -> 611[label="",style="solid", color="black", weight=3]; 591 -> 549[label="",style="dashed", color="red", weight=0]; 591[label="vuz51 `rem` vuz50",fontsize=16,color="magenta"];592[label="vuz50",fontsize=16,color="green",shape="box"];552[label="absReal1 (Pos (Succ vuz2300)) (not (primCmpNat (Succ vuz2300) Zero == LT))",fontsize=16,color="black",shape="box"];552 -> 571[label="",style="solid", color="black", weight=3]; 553[label="absReal1 (Pos Zero) (not (EQ == LT))",fontsize=16,color="black",shape="box"];553 -> 572[label="",style="solid", color="black", weight=3]; 554[label="absReal1 (Neg (Succ vuz2300)) (not (LT == LT))",fontsize=16,color="black",shape="box"];554 -> 573[label="",style="solid", color="black", weight=3]; 555[label="absReal1 (Neg Zero) (not (EQ == LT))",fontsize=16,color="black",shape="box"];555 -> 574[label="",style="solid", color="black", weight=3]; 891[label="primMinusNatS (Succ vuz690) vuz70",fontsize=16,color="burlywood",shape="box"];1166[label="vuz70/Succ vuz700",fontsize=10,color="white",style="solid",shape="box"];891 -> 1166[label="",style="solid", color="burlywood", weight=9]; 1166 -> 901[label="",style="solid", color="burlywood", weight=3]; 1167[label="vuz70/Zero",fontsize=10,color="white",style="solid",shape="box"];891 -> 1167[label="",style="solid", color="burlywood", weight=9]; 1167 -> 902[label="",style="solid", color="burlywood", weight=3]; 892[label="primMinusNatS Zero vuz70",fontsize=16,color="burlywood",shape="box"];1168[label="vuz70/Succ vuz700",fontsize=10,color="white",style="solid",shape="box"];892 -> 1168[label="",style="solid", color="burlywood", weight=9]; 1168 -> 903[label="",style="solid", color="burlywood", weight=3]; 1169[label="vuz70/Zero",fontsize=10,color="white",style="solid",shape="box"];892 -> 1169[label="",style="solid", color="burlywood", weight=9]; 1169 -> 904[label="",style="solid", color="burlywood", weight=3]; 500[label="primRemInt (Pos vuz440) (Pos (Succ vuz4300))",fontsize=16,color="black",shape="box"];500 -> 523[label="",style="solid", color="black", weight=3]; 501[label="primRemInt (Pos vuz440) (Pos Zero)",fontsize=16,color="black",shape="box"];501 -> 524[label="",style="solid", color="black", weight=3]; 502[label="primRemInt (Pos vuz440) (Neg (Succ vuz4300))",fontsize=16,color="black",shape="box"];502 -> 525[label="",style="solid", color="black", weight=3]; 503[label="primRemInt (Pos vuz440) (Neg Zero)",fontsize=16,color="black",shape="box"];503 -> 526[label="",style="solid", color="black", weight=3]; 504[label="primRemInt (Neg vuz440) (Pos (Succ vuz4300))",fontsize=16,color="black",shape="box"];504 -> 527[label="",style="solid", color="black", weight=3]; 505[label="primRemInt (Neg vuz440) (Pos Zero)",fontsize=16,color="black",shape="box"];505 -> 528[label="",style="solid", color="black", weight=3]; 506[label="primRemInt (Neg vuz440) (Neg (Succ vuz4300))",fontsize=16,color="black",shape="box"];506 -> 529[label="",style="solid", color="black", weight=3]; 507[label="primRemInt (Neg vuz440) (Neg Zero)",fontsize=16,color="black",shape="box"];507 -> 530[label="",style="solid", color="black", weight=3]; 607[label="absReal1 (Integer (Pos (Succ vuz20000))) (not (primCmpInt (Pos (Succ vuz20000)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];607 -> 625[label="",style="solid", color="black", weight=3]; 608[label="absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];608 -> 626[label="",style="solid", color="black", weight=3]; 609[label="absReal1 (Integer (Neg (Succ vuz20000))) (not (primCmpInt (Neg (Succ vuz20000)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];609 -> 627[label="",style="solid", color="black", weight=3]; 610[label="absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];610 -> 628[label="",style="solid", color="black", weight=3]; 611[label="Integer (primRemInt vuz510 vuz500)",fontsize=16,color="green",shape="box"];611 -> 629[label="",style="dashed", color="green", weight=3]; 571[label="absReal1 (Pos (Succ vuz2300)) (not (GT == LT))",fontsize=16,color="black",shape="box"];571 -> 593[label="",style="solid", color="black", weight=3]; 572[label="absReal1 (Pos Zero) (not False)",fontsize=16,color="black",shape="box"];572 -> 594[label="",style="solid", color="black", weight=3]; 573[label="absReal1 (Neg (Succ vuz2300)) (not True)",fontsize=16,color="black",shape="box"];573 -> 595[label="",style="solid", color="black", weight=3]; 574[label="absReal1 (Neg Zero) (not False)",fontsize=16,color="black",shape="box"];574 -> 596[label="",style="solid", color="black", weight=3]; 901[label="primMinusNatS (Succ vuz690) (Succ vuz700)",fontsize=16,color="black",shape="box"];901 -> 913[label="",style="solid", color="black", weight=3]; 902[label="primMinusNatS (Succ vuz690) Zero",fontsize=16,color="black",shape="box"];902 -> 914[label="",style="solid", color="black", weight=3]; 903[label="primMinusNatS Zero (Succ vuz700)",fontsize=16,color="black",shape="box"];903 -> 915[label="",style="solid", color="black", weight=3]; 904[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];904 -> 916[label="",style="solid", color="black", weight=3]; 523[label="Pos (primModNatS vuz440 (Succ vuz4300))",fontsize=16,color="green",shape="box"];523 -> 556[label="",style="dashed", color="green", weight=3]; 524 -> 356[label="",style="dashed", color="red", weight=0]; 524[label="error []",fontsize=16,color="magenta"];525[label="Pos (primModNatS vuz440 (Succ vuz4300))",fontsize=16,color="green",shape="box"];525 -> 557[label="",style="dashed", color="green", weight=3]; 526 -> 356[label="",style="dashed", color="red", weight=0]; 526[label="error []",fontsize=16,color="magenta"];527[label="Neg (primModNatS vuz440 (Succ vuz4300))",fontsize=16,color="green",shape="box"];527 -> 558[label="",style="dashed", color="green", weight=3]; 528 -> 356[label="",style="dashed", color="red", weight=0]; 528[label="error []",fontsize=16,color="magenta"];529[label="Neg (primModNatS vuz440 (Succ vuz4300))",fontsize=16,color="green",shape="box"];529 -> 559[label="",style="dashed", color="green", weight=3]; 530 -> 356[label="",style="dashed", color="red", weight=0]; 530[label="error []",fontsize=16,color="magenta"];625[label="absReal1 (Integer (Pos (Succ vuz20000))) (not (primCmpNat (Succ vuz20000) Zero == LT))",fontsize=16,color="black",shape="box"];625 -> 643[label="",style="solid", color="black", weight=3]; 626[label="absReal1 (Integer (Pos Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="box"];626 -> 644[label="",style="solid", color="black", weight=3]; 627[label="absReal1 (Integer (Neg (Succ vuz20000))) (not (LT == LT))",fontsize=16,color="black",shape="box"];627 -> 645[label="",style="solid", color="black", weight=3]; 628[label="absReal1 (Integer (Neg Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="box"];628 -> 646[label="",style="solid", color="black", weight=3]; 629 -> 442[label="",style="dashed", color="red", weight=0]; 629[label="primRemInt vuz510 vuz500",fontsize=16,color="magenta"];629 -> 647[label="",style="dashed", color="magenta", weight=3]; 629 -> 648[label="",style="dashed", color="magenta", weight=3]; 593[label="absReal1 (Pos (Succ vuz2300)) (not False)",fontsize=16,color="black",shape="box"];593 -> 612[label="",style="solid", color="black", weight=3]; 594[label="absReal1 (Pos Zero) True",fontsize=16,color="black",shape="box"];594 -> 613[label="",style="solid", color="black", weight=3]; 595[label="absReal1 (Neg (Succ vuz2300)) False",fontsize=16,color="black",shape="box"];595 -> 614[label="",style="solid", color="black", weight=3]; 596[label="absReal1 (Neg Zero) True",fontsize=16,color="black",shape="box"];596 -> 615[label="",style="solid", color="black", weight=3]; 913 -> 881[label="",style="dashed", color="red", weight=0]; 913[label="primMinusNatS vuz690 vuz700",fontsize=16,color="magenta"];913 -> 921[label="",style="dashed", color="magenta", weight=3]; 913 -> 922[label="",style="dashed", color="magenta", weight=3]; 914[label="Succ vuz690",fontsize=16,color="green",shape="box"];915[label="Zero",fontsize=16,color="green",shape="box"];916[label="Zero",fontsize=16,color="green",shape="box"];556[label="primModNatS vuz440 (Succ vuz4300)",fontsize=16,color="burlywood",shape="triangle"];1170[label="vuz440/Succ vuz4400",fontsize=10,color="white",style="solid",shape="box"];556 -> 1170[label="",style="solid", color="burlywood", weight=9]; 1170 -> 575[label="",style="solid", color="burlywood", weight=3]; 1171[label="vuz440/Zero",fontsize=10,color="white",style="solid",shape="box"];556 -> 1171[label="",style="solid", color="burlywood", weight=9]; 1171 -> 576[label="",style="solid", color="burlywood", weight=3]; 557 -> 556[label="",style="dashed", color="red", weight=0]; 557[label="primModNatS vuz440 (Succ vuz4300)",fontsize=16,color="magenta"];557 -> 577[label="",style="dashed", color="magenta", weight=3]; 558 -> 556[label="",style="dashed", color="red", weight=0]; 558[label="primModNatS vuz440 (Succ vuz4300)",fontsize=16,color="magenta"];558 -> 578[label="",style="dashed", color="magenta", weight=3]; 559 -> 556[label="",style="dashed", color="red", weight=0]; 559[label="primModNatS vuz440 (Succ vuz4300)",fontsize=16,color="magenta"];559 -> 579[label="",style="dashed", color="magenta", weight=3]; 559 -> 580[label="",style="dashed", color="magenta", weight=3]; 643[label="absReal1 (Integer (Pos (Succ vuz20000))) (not (GT == LT))",fontsize=16,color="black",shape="box"];643 -> 662[label="",style="solid", color="black", weight=3]; 644[label="absReal1 (Integer (Pos Zero)) (not False)",fontsize=16,color="black",shape="box"];644 -> 663[label="",style="solid", color="black", weight=3]; 645[label="absReal1 (Integer (Neg (Succ vuz20000))) (not True)",fontsize=16,color="black",shape="box"];645 -> 664[label="",style="solid", color="black", weight=3]; 646[label="absReal1 (Integer (Neg Zero)) (not False)",fontsize=16,color="black",shape="box"];646 -> 665[label="",style="solid", color="black", weight=3]; 647[label="vuz510",fontsize=16,color="green",shape="box"];648[label="vuz500",fontsize=16,color="green",shape="box"];612[label="absReal1 (Pos (Succ vuz2300)) True",fontsize=16,color="black",shape="box"];612 -> 630[label="",style="solid", color="black", weight=3]; 613[label="Pos Zero",fontsize=16,color="green",shape="box"];614[label="absReal0 (Neg (Succ vuz2300)) otherwise",fontsize=16,color="black",shape="box"];614 -> 631[label="",style="solid", color="black", weight=3]; 615[label="Neg Zero",fontsize=16,color="green",shape="box"];921[label="vuz700",fontsize=16,color="green",shape="box"];922[label="vuz690",fontsize=16,color="green",shape="box"];575[label="primModNatS (Succ vuz4400) (Succ vuz4300)",fontsize=16,color="black",shape="box"];575 -> 597[label="",style="solid", color="black", weight=3]; 576[label="primModNatS Zero (Succ vuz4300)",fontsize=16,color="black",shape="box"];576 -> 598[label="",style="solid", color="black", weight=3]; 577[label="vuz4300",fontsize=16,color="green",shape="box"];578[label="vuz440",fontsize=16,color="green",shape="box"];579[label="vuz4300",fontsize=16,color="green",shape="box"];580[label="vuz440",fontsize=16,color="green",shape="box"];662[label="absReal1 (Integer (Pos (Succ vuz20000))) (not False)",fontsize=16,color="black",shape="box"];662 -> 679[label="",style="solid", color="black", weight=3]; 663[label="absReal1 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];663 -> 680[label="",style="solid", color="black", weight=3]; 664[label="absReal1 (Integer (Neg (Succ vuz20000))) False",fontsize=16,color="black",shape="box"];664 -> 681[label="",style="solid", color="black", weight=3]; 665[label="absReal1 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];665 -> 682[label="",style="solid", color="black", weight=3]; 630[label="Pos (Succ vuz2300)",fontsize=16,color="green",shape="box"];631[label="absReal0 (Neg (Succ vuz2300)) True",fontsize=16,color="black",shape="box"];631 -> 649[label="",style="solid", color="black", weight=3]; 597[label="primModNatS0 vuz4400 vuz4300 (primGEqNatS vuz4400 vuz4300)",fontsize=16,color="burlywood",shape="box"];1172[label="vuz4400/Succ vuz44000",fontsize=10,color="white",style="solid",shape="box"];597 -> 1172[label="",style="solid", color="burlywood", weight=9]; 1172 -> 616[label="",style="solid", color="burlywood", weight=3]; 1173[label="vuz4400/Zero",fontsize=10,color="white",style="solid",shape="box"];597 -> 1173[label="",style="solid", color="burlywood", weight=9]; 1173 -> 617[label="",style="solid", color="burlywood", weight=3]; 598[label="Zero",fontsize=16,color="green",shape="box"];679[label="absReal1 (Integer (Pos (Succ vuz20000))) True",fontsize=16,color="black",shape="box"];679 -> 699[label="",style="solid", color="black", weight=3]; 680[label="Integer (Pos Zero)",fontsize=16,color="green",shape="box"];681[label="absReal0 (Integer (Neg (Succ vuz20000))) otherwise",fontsize=16,color="black",shape="box"];681 -> 700[label="",style="solid", color="black", weight=3]; 682[label="Integer (Neg Zero)",fontsize=16,color="green",shape="box"];649[label="`negate` Neg (Succ vuz2300)",fontsize=16,color="black",shape="box"];649 -> 666[label="",style="solid", color="black", weight=3]; 616[label="primModNatS0 (Succ vuz44000) vuz4300 (primGEqNatS (Succ vuz44000) vuz4300)",fontsize=16,color="burlywood",shape="box"];1174[label="vuz4300/Succ vuz43000",fontsize=10,color="white",style="solid",shape="box"];616 -> 1174[label="",style="solid", color="burlywood", weight=9]; 1174 -> 632[label="",style="solid", color="burlywood", weight=3]; 1175[label="vuz4300/Zero",fontsize=10,color="white",style="solid",shape="box"];616 -> 1175[label="",style="solid", color="burlywood", weight=9]; 1175 -> 633[label="",style="solid", color="burlywood", weight=3]; 617[label="primModNatS0 Zero vuz4300 (primGEqNatS Zero vuz4300)",fontsize=16,color="burlywood",shape="box"];1176[label="vuz4300/Succ vuz43000",fontsize=10,color="white",style="solid",shape="box"];617 -> 1176[label="",style="solid", color="burlywood", weight=9]; 1176 -> 634[label="",style="solid", color="burlywood", weight=3]; 1177[label="vuz4300/Zero",fontsize=10,color="white",style="solid",shape="box"];617 -> 1177[label="",style="solid", color="burlywood", weight=9]; 1177 -> 635[label="",style="solid", color="burlywood", weight=3]; 699[label="Integer (Pos (Succ vuz20000))",fontsize=16,color="green",shape="box"];700[label="absReal0 (Integer (Neg (Succ vuz20000))) True",fontsize=16,color="black",shape="box"];700 -> 714[label="",style="solid", color="black", weight=3]; 666[label="primNegInt (Neg (Succ vuz2300))",fontsize=16,color="black",shape="triangle"];666 -> 683[label="",style="solid", color="black", weight=3]; 632[label="primModNatS0 (Succ vuz44000) (Succ vuz43000) (primGEqNatS (Succ vuz44000) (Succ vuz43000))",fontsize=16,color="black",shape="box"];632 -> 650[label="",style="solid", color="black", weight=3]; 633[label="primModNatS0 (Succ vuz44000) Zero (primGEqNatS (Succ vuz44000) Zero)",fontsize=16,color="black",shape="box"];633 -> 651[label="",style="solid", color="black", weight=3]; 634[label="primModNatS0 Zero (Succ vuz43000) (primGEqNatS Zero (Succ vuz43000))",fontsize=16,color="black",shape="box"];634 -> 652[label="",style="solid", color="black", weight=3]; 635[label="primModNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];635 -> 653[label="",style="solid", color="black", weight=3]; 714[label="`negate` Integer (Neg (Succ vuz20000))",fontsize=16,color="black",shape="box"];714 -> 734[label="",style="solid", color="black", weight=3]; 683[label="Pos (Succ vuz2300)",fontsize=16,color="green",shape="box"];650 -> 972[label="",style="dashed", color="red", weight=0]; 650[label="primModNatS0 (Succ vuz44000) (Succ vuz43000) (primGEqNatS vuz44000 vuz43000)",fontsize=16,color="magenta"];650 -> 973[label="",style="dashed", color="magenta", weight=3]; 650 -> 974[label="",style="dashed", color="magenta", weight=3]; 650 -> 975[label="",style="dashed", color="magenta", weight=3]; 650 -> 976[label="",style="dashed", color="magenta", weight=3]; 651[label="primModNatS0 (Succ vuz44000) Zero True",fontsize=16,color="black",shape="box"];651 -> 669[label="",style="solid", color="black", weight=3]; 652[label="primModNatS0 Zero (Succ vuz43000) False",fontsize=16,color="black",shape="box"];652 -> 670[label="",style="solid", color="black", weight=3]; 653[label="primModNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];653 -> 671[label="",style="solid", color="black", weight=3]; 734[label="Integer (primNegInt (Neg (Succ vuz20000)))",fontsize=16,color="green",shape="box"];734 -> 764[label="",style="dashed", color="green", weight=3]; 973[label="vuz44000",fontsize=16,color="green",shape="box"];974[label="vuz43000",fontsize=16,color="green",shape="box"];975[label="vuz44000",fontsize=16,color="green",shape="box"];976[label="vuz43000",fontsize=16,color="green",shape="box"];972[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS vuz91 vuz92)",fontsize=16,color="burlywood",shape="triangle"];1178[label="vuz91/Succ vuz910",fontsize=10,color="white",style="solid",shape="box"];972 -> 1178[label="",style="solid", color="burlywood", weight=9]; 1178 -> 1005[label="",style="solid", color="burlywood", weight=3]; 1179[label="vuz91/Zero",fontsize=10,color="white",style="solid",shape="box"];972 -> 1179[label="",style="solid", color="burlywood", weight=9]; 1179 -> 1006[label="",style="solid", color="burlywood", weight=3]; 669 -> 556[label="",style="dashed", color="red", weight=0]; 669[label="primModNatS (primMinusNatS (Succ vuz44000) Zero) (Succ Zero)",fontsize=16,color="magenta"];669 -> 688[label="",style="dashed", color="magenta", weight=3]; 669 -> 689[label="",style="dashed", color="magenta", weight=3]; 670[label="Succ Zero",fontsize=16,color="green",shape="box"];671 -> 556[label="",style="dashed", color="red", weight=0]; 671[label="primModNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];671 -> 690[label="",style="dashed", color="magenta", weight=3]; 671 -> 691[label="",style="dashed", color="magenta", weight=3]; 764 -> 666[label="",style="dashed", color="red", weight=0]; 764[label="primNegInt (Neg (Succ vuz20000))",fontsize=16,color="magenta"];764 -> 778[label="",style="dashed", color="magenta", weight=3]; 1005[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS (Succ vuz910) vuz92)",fontsize=16,color="burlywood",shape="box"];1180[label="vuz92/Succ vuz920",fontsize=10,color="white",style="solid",shape="box"];1005 -> 1180[label="",style="solid", color="burlywood", weight=9]; 1180 -> 1007[label="",style="solid", color="burlywood", weight=3]; 1181[label="vuz92/Zero",fontsize=10,color="white",style="solid",shape="box"];1005 -> 1181[label="",style="solid", color="burlywood", weight=9]; 1181 -> 1008[label="",style="solid", color="burlywood", weight=3]; 1006[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS Zero vuz92)",fontsize=16,color="burlywood",shape="box"];1182[label="vuz92/Succ vuz920",fontsize=10,color="white",style="solid",shape="box"];1006 -> 1182[label="",style="solid", color="burlywood", weight=9]; 1182 -> 1009[label="",style="solid", color="burlywood", weight=3]; 1183[label="vuz92/Zero",fontsize=10,color="white",style="solid",shape="box"];1006 -> 1183[label="",style="solid", color="burlywood", weight=9]; 1183 -> 1010[label="",style="solid", color="burlywood", weight=3]; 688[label="Zero",fontsize=16,color="green",shape="box"];689 -> 490[label="",style="dashed", color="red", weight=0]; 689[label="primMinusNatS (Succ vuz44000) Zero",fontsize=16,color="magenta"];689 -> 705[label="",style="dashed", color="magenta", weight=3]; 690[label="Zero",fontsize=16,color="green",shape="box"];691 -> 492[label="",style="dashed", color="red", weight=0]; 691[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];778[label="vuz20000",fontsize=16,color="green",shape="box"];1007[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS (Succ vuz910) (Succ vuz920))",fontsize=16,color="black",shape="box"];1007 -> 1011[label="",style="solid", color="black", weight=3]; 1008[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS (Succ vuz910) Zero)",fontsize=16,color="black",shape="box"];1008 -> 1012[label="",style="solid", color="black", weight=3]; 1009[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS Zero (Succ vuz920))",fontsize=16,color="black",shape="box"];1009 -> 1013[label="",style="solid", color="black", weight=3]; 1010[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];1010 -> 1014[label="",style="solid", color="black", weight=3]; 705[label="vuz44000",fontsize=16,color="green",shape="box"];1011 -> 972[label="",style="dashed", color="red", weight=0]; 1011[label="primModNatS0 (Succ vuz89) (Succ vuz90) (primGEqNatS vuz910 vuz920)",fontsize=16,color="magenta"];1011 -> 1015[label="",style="dashed", color="magenta", weight=3]; 1011 -> 1016[label="",style="dashed", color="magenta", weight=3]; 1012[label="primModNatS0 (Succ vuz89) (Succ vuz90) True",fontsize=16,color="black",shape="triangle"];1012 -> 1017[label="",style="solid", color="black", weight=3]; 1013[label="primModNatS0 (Succ vuz89) (Succ vuz90) False",fontsize=16,color="black",shape="box"];1013 -> 1018[label="",style="solid", color="black", weight=3]; 1014 -> 1012[label="",style="dashed", color="red", weight=0]; 1014[label="primModNatS0 (Succ vuz89) (Succ vuz90) True",fontsize=16,color="magenta"];1015[label="vuz910",fontsize=16,color="green",shape="box"];1016[label="vuz920",fontsize=16,color="green",shape="box"];1017 -> 556[label="",style="dashed", color="red", weight=0]; 1017[label="primModNatS (primMinusNatS (Succ vuz89) (Succ vuz90)) (Succ (Succ vuz90))",fontsize=16,color="magenta"];1017 -> 1019[label="",style="dashed", color="magenta", weight=3]; 1017 -> 1020[label="",style="dashed", color="magenta", weight=3]; 1018[label="Succ (Succ vuz89)",fontsize=16,color="green",shape="box"];1019[label="Succ vuz90",fontsize=16,color="green",shape="box"];1020 -> 881[label="",style="dashed", color="red", weight=0]; 1020[label="primMinusNatS (Succ vuz89) (Succ vuz90)",fontsize=16,color="magenta"];1020 -> 1021[label="",style="dashed", color="magenta", weight=3]; 1020 -> 1022[label="",style="dashed", color="magenta", weight=3]; 1021[label="Succ vuz90",fontsize=16,color="green",shape="box"];1022[label="Succ vuz89",fontsize=16,color="green",shape="box"];} ---------------------------------------- (732) Obligation: Q DP problem: P is empty. R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (733) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (734) YES