/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.hs /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox2/benchmark/theBenchmark.hs # AProVE Commit ID: 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, 19 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, 45 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) TransformationProof [EQUIVALENT, 0 ms] (30) QDP (31) DependencyGraphProof [EQUIVALENT, 0 ms] (32) QDP (33) UsableRulesProof [EQUIVALENT, 0 ms] (34) QDP (35) QReductionProof [EQUIVALENT, 0 ms] (36) QDP (37) TransformationProof [EQUIVALENT, 9 ms] (38) QDP (39) UsableRulesProof [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) MNOCProof [EQUIVALENT, 0 ms] (48) QDP (49) InductionCalculusProof [EQUIVALENT, 0 ms] (50) QDP (51) TransformationProof [EQUIVALENT, 0 ms] (52) QDP (53) DependencyGraphProof [EQUIVALENT, 0 ms] (54) QDP (55) UsableRulesProof [EQUIVALENT, 0 ms] (56) QDP (57) QReductionProof [EQUIVALENT, 0 ms] (58) QDP (59) TransformationProof [EQUIVALENT, 2 ms] (60) QDP (61) DependencyGraphProof [EQUIVALENT, 0 ms] (62) QDP (63) TransformationProof [EQUIVALENT, 0 ms] (64) QDP (65) DependencyGraphProof [EQUIVALENT, 0 ms] (66) QDP (67) TransformationProof [EQUIVALENT, 0 ms] (68) QDP (69) TransformationProof [EQUIVALENT, 0 ms] (70) QDP (71) DependencyGraphProof [EQUIVALENT, 0 ms] (72) QDP (73) TransformationProof [EQUIVALENT, 0 ms] (74) QDP (75) DependencyGraphProof [EQUIVALENT, 0 ms] (76) QDP (77) TransformationProof [EQUIVALENT, 0 ms] (78) QDP (79) TransformationProof [EQUIVALENT, 0 ms] (80) QDP (81) DependencyGraphProof [EQUIVALENT, 0 ms] (82) QDP (83) TransformationProof [EQUIVALENT, 0 ms] (84) QDP (85) DependencyGraphProof [EQUIVALENT, 0 ms] (86) QDP (87) TransformationProof [EQUIVALENT, 0 ms] (88) QDP (89) TransformationProof [EQUIVALENT, 0 ms] (90) QDP (91) DependencyGraphProof [EQUIVALENT, 0 ms] (92) QDP (93) TransformationProof [EQUIVALENT, 0 ms] (94) QDP (95) DependencyGraphProof [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) TransformationProof [EQUIVALENT, 0 ms] (104) QDP (105) TransformationProof [EQUIVALENT, 0 ms] (106) QDP (107) TransformationProof [EQUIVALENT, 0 ms] (108) QDP (109) TransformationProof [EQUIVALENT, 0 ms] (110) QDP (111) DependencyGraphProof [EQUIVALENT, 0 ms] (112) QDP (113) TransformationProof [EQUIVALENT, 0 ms] (114) QDP (115) TransformationProof [EQUIVALENT, 0 ms] (116) QDP (117) TransformationProof [EQUIVALENT, 0 ms] (118) QDP (119) DependencyGraphProof [EQUIVALENT, 0 ms] (120) QDP (121) TransformationProof [EQUIVALENT, 0 ms] (122) QDP (123) TransformationProof [EQUIVALENT, 0 ms] (124) QDP (125) TransformationProof [EQUIVALENT, 0 ms] (126) QDP (127) TransformationProof [EQUIVALENT, 0 ms] (128) QDP (129) TransformationProof [EQUIVALENT, 0 ms] (130) QDP (131) TransformationProof [EQUIVALENT, 0 ms] (132) QDP (133) TransformationProof [EQUIVALENT, 0 ms] (134) QDP (135) DependencyGraphProof [EQUIVALENT, 0 ms] (136) QDP (137) TransformationProof [EQUIVALENT, 0 ms] (138) QDP (139) TransformationProof [EQUIVALENT, 0 ms] (140) QDP (141) TransformationProof [EQUIVALENT, 0 ms] (142) QDP (143) DependencyGraphProof [EQUIVALENT, 0 ms] (144) QDP (145) TransformationProof [EQUIVALENT, 0 ms] (146) QDP (147) TransformationProof [EQUIVALENT, 0 ms] (148) QDP (149) TransformationProof [EQUIVALENT, 0 ms] (150) QDP (151) TransformationProof [EQUIVALENT, 0 ms] (152) QDP (153) TransformationProof [EQUIVALENT, 0 ms] (154) QDP (155) TransformationProof [EQUIVALENT, 0 ms] (156) QDP (157) TransformationProof [EQUIVALENT, 0 ms] (158) QDP (159) DependencyGraphProof [EQUIVALENT, 0 ms] (160) QDP (161) TransformationProof [EQUIVALENT, 0 ms] (162) QDP (163) TransformationProof [EQUIVALENT, 0 ms] (164) QDP (165) TransformationProof [EQUIVALENT, 0 ms] (166) QDP (167) DependencyGraphProof [EQUIVALENT, 0 ms] (168) QDP (169) TransformationProof [EQUIVALENT, 0 ms] (170) QDP (171) TransformationProof [EQUIVALENT, 0 ms] (172) QDP (173) TransformationProof [EQUIVALENT, 0 ms] (174) QDP (175) TransformationProof [EQUIVALENT, 0 ms] (176) QDP (177) TransformationProof [EQUIVALENT, 0 ms] (178) QDP (179) TransformationProof [EQUIVALENT, 0 ms] (180) QDP (181) TransformationProof [EQUIVALENT, 0 ms] (182) QDP (183) DependencyGraphProof [EQUIVALENT, 0 ms] (184) QDP (185) TransformationProof [EQUIVALENT, 0 ms] (186) QDP (187) TransformationProof [EQUIVALENT, 0 ms] (188) QDP (189) TransformationProof [EQUIVALENT, 0 ms] (190) QDP (191) DependencyGraphProof [EQUIVALENT, 0 ms] (192) QDP (193) TransformationProof [EQUIVALENT, 0 ms] (194) QDP (195) TransformationProof [EQUIVALENT, 0 ms] (196) QDP (197) TransformationProof [EQUIVALENT, 0 ms] (198) QDP (199) TransformationProof [EQUIVALENT, 0 ms] (200) QDP (201) TransformationProof [EQUIVALENT, 0 ms] (202) QDP (203) TransformationProof [EQUIVALENT, 0 ms] (204) QDP (205) TransformationProof [EQUIVALENT, 0 ms] (206) QDP (207) TransformationProof [EQUIVALENT, 0 ms] (208) QDP (209) TransformationProof [EQUIVALENT, 0 ms] (210) QDP (211) DependencyGraphProof [EQUIVALENT, 0 ms] (212) QDP (213) TransformationProof [EQUIVALENT, 0 ms] (214) QDP (215) TransformationProof [EQUIVALENT, 0 ms] (216) QDP (217) TransformationProof [EQUIVALENT, 1 ms] (218) QDP (219) TransformationProof [EQUIVALENT, 0 ms] (220) QDP (221) DependencyGraphProof [EQUIVALENT, 0 ms] (222) QDP (223) TransformationProof [EQUIVALENT, 0 ms] (224) QDP (225) TransformationProof [EQUIVALENT, 0 ms] (226) QDP (227) TransformationProof [EQUIVALENT, 0 ms] (228) QDP (229) TransformationProof [EQUIVALENT, 0 ms] (230) QDP (231) TransformationProof [EQUIVALENT, 0 ms] (232) QDP (233) TransformationProof [EQUIVALENT, 0 ms] (234) QDP (235) TransformationProof [EQUIVALENT, 0 ms] (236) QDP (237) TransformationProof [EQUIVALENT, 0 ms] (238) QDP (239) TransformationProof [EQUIVALENT, 0 ms] (240) QDP (241) DependencyGraphProof [EQUIVALENT, 0 ms] (242) QDP (243) TransformationProof [EQUIVALENT, 0 ms] (244) QDP (245) TransformationProof [EQUIVALENT, 0 ms] (246) QDP (247) TransformationProof [EQUIVALENT, 0 ms] (248) QDP (249) TransformationProof [EQUIVALENT, 0 ms] (250) QDP (251) DependencyGraphProof [EQUIVALENT, 0 ms] (252) QDP (253) TransformationProof [EQUIVALENT, 0 ms] (254) QDP (255) TransformationProof [EQUIVALENT, 0 ms] (256) QDP (257) TransformationProof [EQUIVALENT, 0 ms] (258) QDP (259) TransformationProof [EQUIVALENT, 0 ms] (260) QDP (261) TransformationProof [EQUIVALENT, 0 ms] (262) QDP (263) TransformationProof [EQUIVALENT, 0 ms] (264) QDP (265) TransformationProof [EQUIVALENT, 0 ms] (266) QDP (267) TransformationProof [EQUIVALENT, 0 ms] (268) QDP (269) TransformationProof [EQUIVALENT, 0 ms] (270) QDP (271) DependencyGraphProof [EQUIVALENT, 0 ms] (272) QDP (273) TransformationProof [EQUIVALENT, 0 ms] (274) QDP (275) TransformationProof [EQUIVALENT, 0 ms] (276) QDP (277) TransformationProof [EQUIVALENT, 0 ms] (278) QDP (279) TransformationProof [EQUIVALENT, 0 ms] (280) QDP (281) DependencyGraphProof [EQUIVALENT, 0 ms] (282) QDP (283) TransformationProof [EQUIVALENT, 0 ms] (284) QDP (285) TransformationProof [EQUIVALENT, 0 ms] (286) QDP (287) TransformationProof [EQUIVALENT, 0 ms] (288) QDP (289) TransformationProof [EQUIVALENT, 0 ms] (290) QDP (291) TransformationProof [EQUIVALENT, 0 ms] (292) QDP (293) TransformationProof [EQUIVALENT, 0 ms] (294) QDP (295) TransformationProof [EQUIVALENT, 0 ms] (296) QDP (297) TransformationProof [EQUIVALENT, 0 ms] (298) QDP (299) TransformationProof [EQUIVALENT, 0 ms] (300) QDP (301) DependencyGraphProof [EQUIVALENT, 0 ms] (302) QDP (303) TransformationProof [EQUIVALENT, 0 ms] (304) QDP (305) TransformationProof [EQUIVALENT, 0 ms] (306) QDP (307) TransformationProof [EQUIVALENT, 0 ms] (308) QDP (309) TransformationProof [EQUIVALENT, 0 ms] (310) QDP (311) DependencyGraphProof [EQUIVALENT, 0 ms] (312) QDP (313) TransformationProof [EQUIVALENT, 0 ms] (314) QDP (315) QDPOrderProof [EQUIVALENT, 90 ms] (316) QDP (317) QDPOrderProof [EQUIVALENT, 65 ms] (318) QDP (319) MNOCProof [EQUIVALENT, 0 ms] (320) QDP (321) QDPOrderProof [EQUIVALENT, 1004 ms] (322) QDP (323) MNOCProof [EQUIVALENT, 0 ms] (324) QDP (325) InductionCalculusProof [EQUIVALENT, 0 ms] (326) QDP (327) QDP (328) DependencyGraphProof [EQUIVALENT, 0 ms] (329) AND (330) QDP (331) MRRProof [EQUIVALENT, 0 ms] (332) QDP (333) PisEmptyProof [EQUIVALENT, 0 ms] (334) YES (335) QDP (336) QDPSizeChangeProof [EQUIVALENT, 0 ms] (337) YES (338) QDP (339) QDPSizeChangeProof [EQUIVALENT, 0 ms] (340) YES (341) QDP (342) QDPSizeChangeProof [EQUIVALENT, 0 ms] (343) YES (344) QDP (345) QDPSizeChangeProof [EQUIVALENT, 0 ms] (346) YES (347) QDP (348) MNOCProof [EQUIVALENT, 0 ms] (349) QDP (350) InductionCalculusProof [EQUIVALENT, 0 ms] (351) QDP (352) TransformationProof [EQUIVALENT, 0 ms] (353) QDP (354) TransformationProof [EQUIVALENT, 0 ms] (355) QDP (356) UsableRulesProof [EQUIVALENT, 0 ms] (357) QDP (358) QReductionProof [EQUIVALENT, 0 ms] (359) QDP (360) TransformationProof [EQUIVALENT, 0 ms] (361) QDP (362) UsableRulesProof [EQUIVALENT, 0 ms] (363) QDP (364) QReductionProof [EQUIVALENT, 0 ms] (365) QDP (366) TransformationProof [EQUIVALENT, 0 ms] (367) QDP (368) TransformationProof [EQUIVALENT, 0 ms] (369) QDP (370) DependencyGraphProof [EQUIVALENT, 0 ms] (371) QDP (372) TransformationProof [EQUIVALENT, 0 ms] (373) QDP (374) DependencyGraphProof [EQUIVALENT, 0 ms] (375) QDP (376) TransformationProof [EQUIVALENT, 0 ms] (377) QDP (378) DependencyGraphProof [EQUIVALENT, 0 ms] (379) QDP (380) TransformationProof [EQUIVALENT, 0 ms] (381) QDP (382) DependencyGraphProof [EQUIVALENT, 0 ms] (383) QDP (384) TransformationProof [EQUIVALENT, 0 ms] (385) QDP (386) DependencyGraphProof [EQUIVALENT, 0 ms] (387) AND (388) QDP (389) UsableRulesProof [EQUIVALENT, 0 ms] (390) QDP (391) QReductionProof [EQUIVALENT, 0 ms] (392) QDP (393) TransformationProof [EQUIVALENT, 0 ms] (394) QDP (395) DependencyGraphProof [EQUIVALENT, 0 ms] (396) QDP (397) TransformationProof [EQUIVALENT, 0 ms] (398) QDP (399) DependencyGraphProof [EQUIVALENT, 0 ms] (400) QDP (401) TransformationProof [EQUIVALENT, 0 ms] (402) QDP (403) TransformationProof [EQUIVALENT, 0 ms] (404) QDP (405) DependencyGraphProof [EQUIVALENT, 0 ms] (406) AND (407) QDP (408) UsableRulesProof [EQUIVALENT, 0 ms] (409) QDP (410) QReductionProof [EQUIVALENT, 0 ms] (411) QDP (412) TransformationProof [EQUIVALENT, 0 ms] (413) QDP (414) TransformationProof [EQUIVALENT, 0 ms] (415) QDP (416) TransformationProof [EQUIVALENT, 0 ms] (417) QDP (418) TransformationProof [EQUIVALENT, 0 ms] (419) QDP (420) TransformationProof [EQUIVALENT, 0 ms] (421) QDP (422) DependencyGraphProof [EQUIVALENT, 0 ms] (423) QDP (424) TransformationProof [EQUIVALENT, 0 ms] (425) QDP (426) DependencyGraphProof [EQUIVALENT, 0 ms] (427) QDP (428) TransformationProof [EQUIVALENT, 0 ms] (429) QDP (430) QDPSizeChangeProof [EQUIVALENT, 0 ms] (431) YES (432) QDP (433) UsableRulesProof [EQUIVALENT, 0 ms] (434) QDP (435) QReductionProof [EQUIVALENT, 0 ms] (436) QDP (437) TransformationProof [EQUIVALENT, 0 ms] (438) QDP (439) TransformationProof [EQUIVALENT, 0 ms] (440) QDP (441) TransformationProof [EQUIVALENT, 0 ms] (442) QDP (443) TransformationProof [EQUIVALENT, 0 ms] (444) QDP (445) TransformationProof [EQUIVALENT, 0 ms] (446) QDP (447) TransformationProof [EQUIVALENT, 0 ms] (448) QDP (449) TransformationProof [EQUIVALENT, 0 ms] (450) QDP (451) TransformationProof [EQUIVALENT, 0 ms] (452) QDP (453) TransformationProof [EQUIVALENT, 0 ms] (454) QDP (455) DependencyGraphProof [EQUIVALENT, 0 ms] (456) QDP (457) TransformationProof [EQUIVALENT, 0 ms] (458) QDP (459) DependencyGraphProof [EQUIVALENT, 0 ms] (460) AND (461) QDP (462) TransformationProof [EQUIVALENT, 0 ms] (463) QDP (464) TransformationProof [EQUIVALENT, 0 ms] (465) QDP (466) TransformationProof [EQUIVALENT, 0 ms] (467) QDP (468) QReductionProof [EQUIVALENT, 0 ms] (469) QDP (470) InductionCalculusProof [EQUIVALENT, 0 ms] (471) QDP (472) QDP (473) QReductionProof [EQUIVALENT, 0 ms] (474) QDP (475) InductionCalculusProof [EQUIVALENT, 0 ms] (476) QDP (477) QDP (478) UsableRulesProof [EQUIVALENT, 0 ms] (479) QDP (480) QReductionProof [EQUIVALENT, 0 ms] (481) QDP (482) TransformationProof [EQUIVALENT, 0 ms] (483) QDP (484) DependencyGraphProof [EQUIVALENT, 0 ms] (485) QDP (486) TransformationProof [EQUIVALENT, 0 ms] (487) QDP (488) DependencyGraphProof [EQUIVALENT, 0 ms] (489) QDP (490) TransformationProof [EQUIVALENT, 0 ms] (491) QDP (492) TransformationProof [EQUIVALENT, 0 ms] (493) QDP (494) DependencyGraphProof [EQUIVALENT, 0 ms] (495) AND (496) QDP (497) UsableRulesProof [EQUIVALENT, 0 ms] (498) QDP (499) QReductionProof [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) DependencyGraphProof [EQUIVALENT, 0 ms] (512) QDP (513) TransformationProof [EQUIVALENT, 0 ms] (514) QDP (515) DependencyGraphProof [EQUIVALENT, 0 ms] (516) QDP (517) TransformationProof [EQUIVALENT, 0 ms] (518) QDP (519) QDPSizeChangeProof [EQUIVALENT, 0 ms] (520) YES (521) QDP (522) UsableRulesProof [EQUIVALENT, 0 ms] (523) QDP (524) QReductionProof [EQUIVALENT, 0 ms] (525) QDP (526) TransformationProof [EQUIVALENT, 0 ms] (527) QDP (528) TransformationProof [EQUIVALENT, 0 ms] (529) QDP (530) TransformationProof [EQUIVALENT, 0 ms] (531) QDP (532) TransformationProof [EQUIVALENT, 0 ms] (533) QDP (534) TransformationProof [EQUIVALENT, 0 ms] (535) QDP (536) TransformationProof [EQUIVALENT, 0 ms] (537) QDP (538) TransformationProof [EQUIVALENT, 0 ms] (539) QDP (540) TransformationProof [EQUIVALENT, 0 ms] (541) QDP (542) TransformationProof [EQUIVALENT, 0 ms] (543) QDP (544) DependencyGraphProof [EQUIVALENT, 0 ms] (545) QDP (546) TransformationProof [EQUIVALENT, 0 ms] (547) QDP (548) DependencyGraphProof [EQUIVALENT, 0 ms] (549) AND (550) QDP (551) TransformationProof [EQUIVALENT, 0 ms] (552) QDP (553) TransformationProof [EQUIVALENT, 0 ms] (554) QDP (555) TransformationProof [EQUIVALENT, 0 ms] (556) QDP (557) QReductionProof [EQUIVALENT, 0 ms] (558) QDP (559) InductionCalculusProof [EQUIVALENT, 0 ms] (560) QDP (561) QDP (562) QReductionProof [EQUIVALENT, 0 ms] (563) QDP (564) InductionCalculusProof [EQUIVALENT, 0 ms] (565) QDP (566) QDP (567) UsableRulesProof [EQUIVALENT, 0 ms] (568) QDP (569) QReductionProof [EQUIVALENT, 0 ms] (570) QDP (571) TransformationProof [EQUIVALENT, 0 ms] (572) QDP (573) DependencyGraphProof [EQUIVALENT, 0 ms] (574) QDP (575) TransformationProof [EQUIVALENT, 0 ms] (576) QDP (577) DependencyGraphProof [EQUIVALENT, 0 ms] (578) QDP (579) TransformationProof [EQUIVALENT, 0 ms] (580) QDP (581) TransformationProof [EQUIVALENT, 0 ms] (582) QDP (583) DependencyGraphProof [EQUIVALENT, 0 ms] (584) QDP (585) TransformationProof [EQUIVALENT, 0 ms] (586) QDP (587) TransformationProof [EQUIVALENT, 0 ms] (588) QDP (589) TransformationProof [EQUIVALENT, 0 ms] (590) QDP (591) DependencyGraphProof [EQUIVALENT, 0 ms] (592) QDP (593) TransformationProof [EQUIVALENT, 0 ms] (594) QDP (595) TransformationProof [EQUIVALENT, 0 ms] (596) QDP (597) TransformationProof [EQUIVALENT, 0 ms] (598) QDP (599) TransformationProof [EQUIVALENT, 0 ms] (600) QDP (601) DependencyGraphProof [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) DependencyGraphProof [EQUIVALENT, 0 ms] (616) QDP (617) TransformationProof [EQUIVALENT, 0 ms] (618) QDP (619) TransformationProof [EQUIVALENT, 0 ms] (620) QDP (621) DependencyGraphProof [EQUIVALENT, 0 ms] (622) AND (623) QDP (624) UsableRulesProof [EQUIVALENT, 0 ms] (625) QDP (626) QReductionProof [EQUIVALENT, 0 ms] (627) QDP (628) TransformationProof [EQUIVALENT, 0 ms] (629) QDP (630) TransformationProof [EQUIVALENT, 0 ms] (631) QDP (632) TransformationProof [EQUIVALENT, 0 ms] (633) QDP (634) DependencyGraphProof [EQUIVALENT, 0 ms] (635) QDP (636) TransformationProof [EQUIVALENT, 0 ms] (637) QDP (638) DependencyGraphProof [EQUIVALENT, 0 ms] (639) QDP (640) TransformationProof [EQUIVALENT, 0 ms] (641) QDP (642) QDPSizeChangeProof [EQUIVALENT, 0 ms] (643) YES (644) QDP (645) UsableRulesProof [EQUIVALENT, 0 ms] (646) QDP (647) QReductionProof [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) TransformationProof [EQUIVALENT, 0 ms] (656) QDP (657) TransformationProof [EQUIVALENT, 0 ms] (658) QDP (659) DependencyGraphProof [EQUIVALENT, 0 ms] (660) QDP (661) TransformationProof [EQUIVALENT, 0 ms] (662) QDP (663) DependencyGraphProof [EQUIVALENT, 0 ms] (664) QDP (665) TransformationProof [EQUIVALENT, 0 ms] (666) QDP (667) QDPSizeChangeProof [EQUIVALENT, 0 ms] (668) YES (669) QDP (670) UsableRulesProof [EQUIVALENT, 0 ms] (671) QDP (672) QReductionProof [EQUIVALENT, 0 ms] (673) QDP (674) TransformationProof [EQUIVALENT, 0 ms] (675) QDP (676) TransformationProof [EQUIVALENT, 0 ms] (677) QDP (678) TransformationProof [EQUIVALENT, 0 ms] (679) QDP (680) TransformationProof [EQUIVALENT, 0 ms] (681) QDP (682) TransformationProof [EQUIVALENT, 0 ms] (683) QDP (684) TransformationProof [EQUIVALENT, 0 ms] (685) QDP (686) TransformationProof [EQUIVALENT, 0 ms] (687) QDP (688) TransformationProof [EQUIVALENT, 0 ms] (689) QDP (690) TransformationProof [EQUIVALENT, 0 ms] (691) QDP (692) DependencyGraphProof [EQUIVALENT, 0 ms] (693) QDP (694) TransformationProof [EQUIVALENT, 1 ms] (695) QDP (696) DependencyGraphProof [EQUIVALENT, 0 ms] (697) QDP (698) TransformationProof [EQUIVALENT, 0 ms] (699) QDP (700) TransformationProof [EQUIVALENT, 0 ms] (701) QDP (702) TransformationProof [EQUIVALENT, 0 ms] (703) QDP (704) TransformationProof [EQUIVALENT, 0 ms] (705) QDP (706) DependencyGraphProof [EQUIVALENT, 0 ms] (707) AND (708) QDP (709) UsableRulesProof [EQUIVALENT, 0 ms] (710) QDP (711) TransformationProof [EQUIVALENT, 0 ms] (712) QDP (713) TransformationProof [EQUIVALENT, 0 ms] (714) QDP (715) TransformationProof [EQUIVALENT, 0 ms] (716) QDP (717) InductionCalculusProof [EQUIVALENT, 0 ms] (718) QDP (719) QDP (720) UsableRulesProof [EQUIVALENT, 0 ms] (721) QDP (722) TransformationProof [EQUIVALENT, 0 ms] (723) QDP (724) UsableRulesProof [EQUIVALENT, 0 ms] (725) QDP (726) InductionCalculusProof [EQUIVALENT, 0 ms] (727) QDP (728) QDP (729) InductionCalculusProof [EQUIVALENT, 0 ms] (730) QDP (731) QDP (732) QDPSizeChangeProof [EQUIVALENT, 0 ms] (733) YES (734) Narrow [COMPLETE, 0 ms] (735) TRUE ---------------------------------------- (0) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (1) IFR (EQUIVALENT) If Reductions: The following If expression "if primGEqNatS x y then Succ (primDivNatS (primMinusNatS x y) (Succ y)) else Zero" is transformed to "primDivNatS0 x y True = Succ (primDivNatS (primMinusNatS x y) (Succ y)); primDivNatS0 x y False = Zero; " The following If expression "if primGEqNatS x y then primModNatS (primMinusNatS x y) (Succ y) else Succ x" is transformed to "primModNatS0 x y True = primModNatS (primMinusNatS x y) (Succ y); primModNatS0 x y False = Succ x; " ---------------------------------------- (2) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (3) BR (EQUIVALENT) Replaced joker patterns by fresh variables and removed binding patterns. ---------------------------------------- (4) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (5) COR (EQUIVALENT) Cond Reductions: The following Function with conditions "absReal x|x >= 0x|otherwise`negate` x; " is transformed to "absReal x = absReal2 x; " "absReal1 x True = x; absReal1 x False = absReal0 x otherwise; " "absReal0 x True = `negate` x; " "absReal2 x = absReal1 x (x >= 0); " The following Function with conditions "gcd' x 0 = x; gcd' x y = gcd' y (x `rem` y); " is transformed to "gcd' x xz = gcd'2 x xz; gcd' x y = gcd'0 x y; " "gcd'0 x y = gcd' y (x `rem` y); " "gcd'1 True x xz = x; gcd'1 yu yv yw = gcd'0 yv yw; " "gcd'2 x xz = gcd'1 (xz == 0) x xz; gcd'2 yx yy = gcd'0 yx yy; " The following Function with conditions "gcd 0 0 = error []; gcd x y = gcd' (abs x) (abs y) where { gcd' x 0 = x; gcd' x y = gcd' y (x `rem` y); } ; " is transformed to "gcd yz zu = gcd3 yz zu; gcd x y = gcd0 x y; " "gcd0 x y = gcd' (abs x) (abs y) where { gcd' x xz = gcd'2 x xz; gcd' x y = gcd'0 x y; ; gcd'0 x y = gcd' y (x `rem` y); ; gcd'1 True x xz = x; gcd'1 yu yv yw = gcd'0 yv yw; ; gcd'2 x xz = gcd'1 (xz == 0) x xz; gcd'2 yx yy = gcd'0 yx yy; } ; " "gcd1 True yz zu = error []; gcd1 zv zw zx = gcd0 zw zx; " "gcd2 True yz zu = gcd1 (zu == 0) yz zu; gcd2 zy zz vuu = gcd0 zz vuu; " "gcd3 yz zu = gcd2 (yz == 0) yz zu; gcd3 vuv vuw = gcd0 vuv vuw; " The following Function with conditions "undefined |Falseundefined; " is transformed to "undefined = undefined1; " "undefined0 True = undefined; " "undefined1 = undefined0 False; " The following Function with conditions "reduce x y|y == 0error []|otherwisex `quot` d :% (y `quot` d) where { d = gcd x y; } ; " is transformed to "reduce x y = reduce2 x y; " "reduce2 x y = reduce1 x y (y == 0) where { d = gcd x y; ; reduce0 x y True = x `quot` d :% (y `quot` d); ; reduce1 x y True = error []; reduce1 x y False = reduce0 x y otherwise; } ; " ---------------------------------------- (6) Obligation: mainModule Main module Main where { import qualified Prelude; } ---------------------------------------- (7) LetRed (EQUIVALENT) Let/Where Reductions: The bindings of the following Let/Where expression "gcd' (abs x) (abs y) where { gcd' x xz = gcd'2 x xz; gcd' x y = gcd'0 x y; ; gcd'0 x y = gcd' y (x `rem` y); ; gcd'1 True x xz = x; gcd'1 yu yv yw = gcd'0 yv yw; ; gcd'2 x xz = gcd'1 (xz == 0) x xz; gcd'2 yx yy = gcd'0 yx yy; } " are unpacked to the following functions on top level "gcd0Gcd'0 x y = gcd0Gcd' y (x `rem` y); " "gcd0Gcd'2 x xz = gcd0Gcd'1 (xz == 0) x xz; gcd0Gcd'2 yx yy = gcd0Gcd'0 yx yy; " "gcd0Gcd' x xz = gcd0Gcd'2 x xz; gcd0Gcd' x y = gcd0Gcd'0 x y; " "gcd0Gcd'1 True x xz = x; gcd0Gcd'1 yu yv yw = gcd0Gcd'0 yv yw; " 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="product",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="product vuz3",fontsize=16,color="black",shape="triangle"];3 -> 4[label="",style="solid", color="black", weight=3]; 4[label="foldl' (*) (fromInt (Pos (Succ Zero))) vuz3",fontsize=16,color="burlywood",shape="box"];1085[label="vuz3/vuz30 : vuz31",fontsize=10,color="white",style="solid",shape="box"];4 -> 1085[label="",style="solid", color="burlywood", weight=9]; 1085 -> 5[label="",style="solid", color="burlywood", weight=3]; 1086[label="vuz3/[]",fontsize=10,color="white",style="solid",shape="box"];4 -> 1086[label="",style="solid", color="burlywood", weight=9]; 1086 -> 6[label="",style="solid", color="burlywood", weight=3]; 5[label="foldl' (*) (fromInt (Pos (Succ Zero))) (vuz30 : vuz31)",fontsize=16,color="black",shape="box"];5 -> 7[label="",style="solid", color="black", weight=3]; 6[label="foldl' (*) (fromInt (Pos (Succ Zero))) []",fontsize=16,color="black",shape="box"];6 -> 8[label="",style="solid", color="black", weight=3]; 7[label="(foldl' (*) $! (*) fromInt (Pos (Succ Zero)) vuz30)",fontsize=16,color="black",shape="box"];7 -> 9[label="",style="solid", color="black", weight=3]; 8[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];1087[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];8 -> 1087[label="",style="solid", color="blue", weight=9]; 1087 -> 10[label="",style="solid", color="blue", weight=3]; 1088[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];8 -> 1088[label="",style="solid", color="blue", weight=9]; 1088 -> 11[label="",style="solid", color="blue", weight=3]; 1089[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];8 -> 1089[label="",style="solid", color="blue", weight=9]; 1089 -> 12[label="",style="solid", color="blue", weight=3]; 1090[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];8 -> 1090[label="",style="solid", color="blue", weight=9]; 1090 -> 13[label="",style="solid", color="blue", weight=3]; 1091[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];8 -> 1091[label="",style="solid", color="blue", weight=9]; 1091 -> 14[label="",style="solid", color="blue", weight=3]; 9[label="((*) fromInt (Pos (Succ Zero)) vuz30 `seq` foldl' (*) ((*) fromInt (Pos (Succ Zero)) vuz30))",fontsize=16,color="black",shape="box"];9 -> 15[label="",style="solid", color="black", weight=3]; 10[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];10 -> 16[label="",style="solid", color="black", weight=3]; 11[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];11 -> 17[label="",style="solid", color="black", weight=3]; 12[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];12 -> 18[label="",style="solid", color="black", weight=3]; 13[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];13 -> 19[label="",style="solid", color="black", weight=3]; 14[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];14 -> 20[label="",style="solid", color="black", weight=3]; 15 -> 21[label="",style="dashed", color="red", weight=0]; 15[label="enforceWHNF (WHNF ((*) fromInt (Pos (Succ Zero)) vuz30)) (foldl' (*) ((*) fromInt (Pos (Succ Zero)) vuz30)) vuz31",fontsize=16,color="magenta"];15 -> 22[label="",style="dashed", color="magenta", weight=3]; 15 -> 23[label="",style="dashed", color="magenta", weight=3]; 16[label="primIntToDouble (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];16 -> 24[label="",style="solid", color="black", weight=3]; 17[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];18[label="intToRatio (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];18 -> 25[label="",style="solid", color="black", weight=3]; 19[label="primIntToFloat (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];19 -> 26[label="",style="solid", color="black", weight=3]; 20[label="Integer (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];22[label="vuz31",fontsize=16,color="green",shape="box"];23[label="(*) fromInt (Pos (Succ Zero)) vuz30",fontsize=16,color="blue",shape="box"];1092[label="* :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];23 -> 1092[label="",style="solid", color="blue", weight=9]; 1092 -> 27[label="",style="solid", color="blue", weight=3]; 1093[label="* :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];23 -> 1093[label="",style="solid", color="blue", weight=9]; 1093 -> 28[label="",style="solid", color="blue", weight=3]; 1094[label="* :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];23 -> 1094[label="",style="solid", color="blue", weight=9]; 1094 -> 29[label="",style="solid", color="blue", weight=3]; 1095[label="* :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];23 -> 1095[label="",style="solid", color="blue", weight=9]; 1095 -> 30[label="",style="solid", color="blue", weight=3]; 1096[label="* :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];23 -> 1096[label="",style="solid", color="blue", weight=9]; 1096 -> 31[label="",style="solid", color="blue", weight=3]; 21[label="enforceWHNF (WHNF vuz7) (foldl' (*) vuz7) vuz8",fontsize=16,color="black",shape="triangle"];21 -> 32[label="",style="solid", color="black", weight=3]; 24[label="Double (Pos (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];25[label="fromInt (Pos (Succ Zero)) :% fromInt (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];25 -> 33[label="",style="dashed", color="green", weight=3]; 25 -> 34[label="",style="dashed", color="green", weight=3]; 26[label="Float (Pos (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];27 -> 35[label="",style="dashed", color="red", weight=0]; 27[label="(*) fromInt (Pos (Succ Zero)) vuz30",fontsize=16,color="magenta"];27 -> 36[label="",style="dashed", color="magenta", weight=3]; 28 -> 37[label="",style="dashed", color="red", weight=0]; 28[label="(*) fromInt (Pos (Succ Zero)) vuz30",fontsize=16,color="magenta"];28 -> 38[label="",style="dashed", color="magenta", weight=3]; 29 -> 39[label="",style="dashed", color="red", weight=0]; 29[label="(*) fromInt (Pos (Succ Zero)) vuz30",fontsize=16,color="magenta"];29 -> 40[label="",style="dashed", color="magenta", weight=3]; 30 -> 41[label="",style="dashed", color="red", weight=0]; 30[label="(*) fromInt (Pos (Succ Zero)) vuz30",fontsize=16,color="magenta"];30 -> 42[label="",style="dashed", color="magenta", weight=3]; 31 -> 43[label="",style="dashed", color="red", weight=0]; 31[label="(*) fromInt (Pos (Succ Zero)) vuz30",fontsize=16,color="magenta"];31 -> 44[label="",style="dashed", color="magenta", weight=3]; 32[label="foldl' (*) vuz7 vuz8",fontsize=16,color="burlywood",shape="box"];1097[label="vuz8/vuz80 : vuz81",fontsize=10,color="white",style="solid",shape="box"];32 -> 1097[label="",style="solid", color="burlywood", weight=9]; 1097 -> 45[label="",style="solid", color="burlywood", weight=3]; 1098[label="vuz8/[]",fontsize=10,color="white",style="solid",shape="box"];32 -> 1098[label="",style="solid", color="burlywood", weight=9]; 1098 -> 46[label="",style="solid", color="burlywood", weight=3]; 33[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];1099[label="fromInt :: Int -> Int",fontsize=10,color="white",style="solid",shape="box"];33 -> 1099[label="",style="solid", color="blue", weight=9]; 1099 -> 47[label="",style="solid", color="blue", weight=3]; 1100[label="fromInt :: Int -> Integer",fontsize=10,color="white",style="solid",shape="box"];33 -> 1100[label="",style="solid", color="blue", weight=9]; 1100 -> 48[label="",style="solid", color="blue", weight=3]; 34[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];1101[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];34 -> 1101[label="",style="solid", color="blue", weight=9]; 1101 -> 49[label="",style="solid", color="blue", weight=3]; 1102[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];34 -> 1102[label="",style="solid", color="blue", weight=9]; 1102 -> 50[label="",style="solid", color="blue", weight=3]; 36 -> 10[label="",style="dashed", color="red", weight=0]; 36[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];35[label="(*) vuz9 vuz30",fontsize=16,color="black",shape="triangle"];35 -> 51[label="",style="solid", color="black", weight=3]; 38 -> 11[label="",style="dashed", color="red", weight=0]; 38[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];37[label="(*) vuz10 vuz30",fontsize=16,color="black",shape="triangle"];37 -> 52[label="",style="solid", color="black", weight=3]; 40 -> 12[label="",style="dashed", color="red", weight=0]; 40[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];39[label="(*) vuz11 vuz30",fontsize=16,color="burlywood",shape="triangle"];1103[label="vuz11/vuz110 :% vuz111",fontsize=10,color="white",style="solid",shape="box"];39 -> 1103[label="",style="solid", color="burlywood", weight=9]; 1103 -> 53[label="",style="solid", color="burlywood", weight=3]; 42 -> 13[label="",style="dashed", color="red", weight=0]; 42[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];41[label="(*) vuz12 vuz30",fontsize=16,color="black",shape="triangle"];41 -> 54[label="",style="solid", color="black", weight=3]; 44 -> 14[label="",style="dashed", color="red", weight=0]; 44[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];43[label="(*) vuz13 vuz30",fontsize=16,color="burlywood",shape="triangle"];1104[label="vuz13/Integer vuz130",fontsize=10,color="white",style="solid",shape="box"];43 -> 1104[label="",style="solid", color="burlywood", weight=9]; 1104 -> 55[label="",style="solid", color="burlywood", weight=3]; 45[label="foldl' (*) vuz7 (vuz80 : vuz81)",fontsize=16,color="black",shape="box"];45 -> 56[label="",style="solid", color="black", weight=3]; 46[label="foldl' (*) vuz7 []",fontsize=16,color="black",shape="box"];46 -> 57[label="",style="solid", color="black", weight=3]; 47 -> 11[label="",style="dashed", color="red", weight=0]; 47[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];48 -> 14[label="",style="dashed", color="red", weight=0]; 48[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];49 -> 11[label="",style="dashed", color="red", weight=0]; 49[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];50 -> 14[label="",style="dashed", color="red", weight=0]; 50[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];51[label="primMulDouble vuz9 vuz30",fontsize=16,color="burlywood",shape="box"];1105[label="vuz9/Double vuz90 vuz91",fontsize=10,color="white",style="solid",shape="box"];51 -> 1105[label="",style="solid", color="burlywood", weight=9]; 1105 -> 58[label="",style="solid", color="burlywood", weight=3]; 52[label="primMulInt vuz10 vuz30",fontsize=16,color="burlywood",shape="triangle"];1106[label="vuz10/Pos vuz100",fontsize=10,color="white",style="solid",shape="box"];52 -> 1106[label="",style="solid", color="burlywood", weight=9]; 1106 -> 59[label="",style="solid", color="burlywood", weight=3]; 1107[label="vuz10/Neg vuz100",fontsize=10,color="white",style="solid",shape="box"];52 -> 1107[label="",style="solid", color="burlywood", weight=9]; 1107 -> 60[label="",style="solid", color="burlywood", weight=3]; 53[label="(*) (vuz110 :% vuz111) vuz30",fontsize=16,color="burlywood",shape="box"];1108[label="vuz30/vuz300 :% vuz301",fontsize=10,color="white",style="solid",shape="box"];53 -> 1108[label="",style="solid", color="burlywood", weight=9]; 1108 -> 61[label="",style="solid", color="burlywood", weight=3]; 54[label="primMulFloat vuz12 vuz30",fontsize=16,color="burlywood",shape="box"];1109[label="vuz12/Float vuz120 vuz121",fontsize=10,color="white",style="solid",shape="box"];54 -> 1109[label="",style="solid", color="burlywood", weight=9]; 1109 -> 62[label="",style="solid", color="burlywood", weight=3]; 55[label="(*) Integer vuz130 vuz30",fontsize=16,color="burlywood",shape="box"];1110[label="vuz30/Integer vuz300",fontsize=10,color="white",style="solid",shape="box"];55 -> 1110[label="",style="solid", color="burlywood", weight=9]; 1110 -> 63[label="",style="solid", color="burlywood", weight=3]; 56[label="(foldl' (*) $! (*) vuz7 vuz80)",fontsize=16,color="black",shape="box"];56 -> 64[label="",style="solid", color="black", weight=3]; 57[label="vuz7",fontsize=16,color="green",shape="box"];58[label="primMulDouble (Double vuz90 vuz91) vuz30",fontsize=16,color="burlywood",shape="box"];1111[label="vuz30/Double vuz300 vuz301",fontsize=10,color="white",style="solid",shape="box"];58 -> 1111[label="",style="solid", color="burlywood", weight=9]; 1111 -> 65[label="",style="solid", color="burlywood", weight=3]; 59[label="primMulInt (Pos vuz100) vuz30",fontsize=16,color="burlywood",shape="box"];1112[label="vuz30/Pos vuz300",fontsize=10,color="white",style="solid",shape="box"];59 -> 1112[label="",style="solid", color="burlywood", weight=9]; 1112 -> 66[label="",style="solid", color="burlywood", weight=3]; 1113[label="vuz30/Neg vuz300",fontsize=10,color="white",style="solid",shape="box"];59 -> 1113[label="",style="solid", color="burlywood", weight=9]; 1113 -> 67[label="",style="solid", color="burlywood", weight=3]; 60[label="primMulInt (Neg vuz100) vuz30",fontsize=16,color="burlywood",shape="box"];1114[label="vuz30/Pos vuz300",fontsize=10,color="white",style="solid",shape="box"];60 -> 1114[label="",style="solid", color="burlywood", weight=9]; 1114 -> 68[label="",style="solid", color="burlywood", weight=3]; 1115[label="vuz30/Neg vuz300",fontsize=10,color="white",style="solid",shape="box"];60 -> 1115[label="",style="solid", color="burlywood", weight=9]; 1115 -> 69[label="",style="solid", color="burlywood", weight=3]; 61[label="(*) (vuz110 :% vuz111) (vuz300 :% vuz301)",fontsize=16,color="black",shape="box"];61 -> 70[label="",style="solid", color="black", weight=3]; 62[label="primMulFloat (Float vuz120 vuz121) vuz30",fontsize=16,color="burlywood",shape="box"];1116[label="vuz30/Float vuz300 vuz301",fontsize=10,color="white",style="solid",shape="box"];62 -> 1116[label="",style="solid", color="burlywood", weight=9]; 1116 -> 71[label="",style="solid", color="burlywood", weight=3]; 63[label="(*) Integer vuz130 Integer vuz300",fontsize=16,color="black",shape="box"];63 -> 72[label="",style="solid", color="black", weight=3]; 64[label="((*) vuz7 vuz80 `seq` foldl' (*) ((*) vuz7 vuz80))",fontsize=16,color="black",shape="box"];64 -> 73[label="",style="solid", color="black", weight=3]; 65[label="primMulDouble (Double vuz90 vuz91) (Double vuz300 vuz301)",fontsize=16,color="black",shape="box"];65 -> 74[label="",style="solid", color="black", weight=3]; 66[label="primMulInt (Pos vuz100) (Pos vuz300)",fontsize=16,color="black",shape="box"];66 -> 75[label="",style="solid", color="black", weight=3]; 67[label="primMulInt (Pos vuz100) (Neg vuz300)",fontsize=16,color="black",shape="box"];67 -> 76[label="",style="solid", color="black", weight=3]; 68[label="primMulInt (Neg vuz100) (Pos vuz300)",fontsize=16,color="black",shape="box"];68 -> 77[label="",style="solid", color="black", weight=3]; 69[label="primMulInt (Neg vuz100) (Neg vuz300)",fontsize=16,color="black",shape="box"];69 -> 78[label="",style="solid", color="black", weight=3]; 70[label="reduce (vuz110 * vuz300) (vuz111 * vuz301)",fontsize=16,color="black",shape="box"];70 -> 79[label="",style="solid", color="black", weight=3]; 71[label="primMulFloat (Float vuz120 vuz121) (Float vuz300 vuz301)",fontsize=16,color="black",shape="box"];71 -> 80[label="",style="solid", color="black", weight=3]; 72[label="Integer (primMulInt vuz130 vuz300)",fontsize=16,color="green",shape="box"];72 -> 81[label="",style="dashed", color="green", weight=3]; 73 -> 21[label="",style="dashed", color="red", weight=0]; 73[label="enforceWHNF (WHNF ((*) vuz7 vuz80)) (foldl' (*) ((*) vuz7 vuz80)) vuz81",fontsize=16,color="magenta"];73 -> 82[label="",style="dashed", color="magenta", weight=3]; 73 -> 83[label="",style="dashed", color="magenta", weight=3]; 74[label="Double (vuz90 * vuz300) (vuz91 * vuz301)",fontsize=16,color="green",shape="box"];74 -> 84[label="",style="dashed", color="green", weight=3]; 74 -> 85[label="",style="dashed", color="green", weight=3]; 75[label="Pos (primMulNat vuz100 vuz300)",fontsize=16,color="green",shape="box"];75 -> 86[label="",style="dashed", color="green", weight=3]; 76[label="Neg (primMulNat vuz100 vuz300)",fontsize=16,color="green",shape="box"];76 -> 87[label="",style="dashed", color="green", weight=3]; 77[label="Neg (primMulNat vuz100 vuz300)",fontsize=16,color="green",shape="box"];77 -> 88[label="",style="dashed", color="green", weight=3]; 78[label="Pos (primMulNat vuz100 vuz300)",fontsize=16,color="green",shape="box"];78 -> 89[label="",style="dashed", color="green", weight=3]; 79[label="reduce2 (vuz110 * vuz300) (vuz111 * vuz301)",fontsize=16,color="black",shape="box"];79 -> 90[label="",style="solid", color="black", weight=3]; 80[label="Float (vuz120 * vuz300) (vuz121 * vuz301)",fontsize=16,color="green",shape="box"];80 -> 91[label="",style="dashed", color="green", weight=3]; 80 -> 92[label="",style="dashed", color="green", weight=3]; 81 -> 52[label="",style="dashed", color="red", weight=0]; 81[label="primMulInt vuz130 vuz300",fontsize=16,color="magenta"];81 -> 93[label="",style="dashed", color="magenta", weight=3]; 81 -> 94[label="",style="dashed", color="magenta", weight=3]; 82[label="vuz81",fontsize=16,color="green",shape="box"];83[label="(*) vuz7 vuz80",fontsize=16,color="blue",shape="box"];1117[label="* :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];83 -> 1117[label="",style="solid", color="blue", weight=9]; 1117 -> 95[label="",style="solid", color="blue", weight=3]; 1118[label="* :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];83 -> 1118[label="",style="solid", color="blue", weight=9]; 1118 -> 96[label="",style="solid", color="blue", weight=3]; 1119[label="* :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];83 -> 1119[label="",style="solid", color="blue", weight=9]; 1119 -> 97[label="",style="solid", color="blue", weight=3]; 1120[label="* :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];83 -> 1120[label="",style="solid", color="blue", weight=9]; 1120 -> 98[label="",style="solid", color="blue", weight=3]; 1121[label="* :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];83 -> 1121[label="",style="solid", color="blue", weight=9]; 1121 -> 99[label="",style="solid", color="blue", weight=3]; 84 -> 37[label="",style="dashed", color="red", weight=0]; 84[label="vuz90 * vuz300",fontsize=16,color="magenta"];84 -> 100[label="",style="dashed", color="magenta", weight=3]; 84 -> 101[label="",style="dashed", color="magenta", weight=3]; 85 -> 37[label="",style="dashed", color="red", weight=0]; 85[label="vuz91 * vuz301",fontsize=16,color="magenta"];85 -> 102[label="",style="dashed", color="magenta", weight=3]; 85 -> 103[label="",style="dashed", color="magenta", weight=3]; 86[label="primMulNat vuz100 vuz300",fontsize=16,color="burlywood",shape="triangle"];1122[label="vuz100/Succ vuz1000",fontsize=10,color="white",style="solid",shape="box"];86 -> 1122[label="",style="solid", color="burlywood", weight=9]; 1122 -> 104[label="",style="solid", color="burlywood", weight=3]; 1123[label="vuz100/Zero",fontsize=10,color="white",style="solid",shape="box"];86 -> 1123[label="",style="solid", color="burlywood", weight=9]; 1123 -> 105[label="",style="solid", color="burlywood", weight=3]; 87 -> 86[label="",style="dashed", color="red", weight=0]; 87[label="primMulNat vuz100 vuz300",fontsize=16,color="magenta"];87 -> 106[label="",style="dashed", color="magenta", weight=3]; 88 -> 86[label="",style="dashed", color="red", weight=0]; 88[label="primMulNat vuz100 vuz300",fontsize=16,color="magenta"];88 -> 107[label="",style="dashed", color="magenta", weight=3]; 89 -> 86[label="",style="dashed", color="red", weight=0]; 89[label="primMulNat vuz100 vuz300",fontsize=16,color="magenta"];89 -> 108[label="",style="dashed", color="magenta", weight=3]; 89 -> 109[label="",style="dashed", color="magenta", weight=3]; 90 -> 110[label="",style="dashed", color="red", weight=0]; 90[label="reduce2Reduce1 (vuz110 * vuz300) (vuz111 * vuz301) (vuz110 * vuz300) (vuz111 * vuz301) (vuz111 * vuz301 == fromInt (Pos Zero))",fontsize=16,color="magenta"];90 -> 111[label="",style="dashed", color="magenta", weight=3]; 90 -> 112[label="",style="dashed", color="magenta", weight=3]; 90 -> 113[label="",style="dashed", color="magenta", weight=3]; 90 -> 114[label="",style="dashed", color="magenta", weight=3]; 90 -> 115[label="",style="dashed", color="magenta", weight=3]; 91 -> 37[label="",style="dashed", color="red", weight=0]; 91[label="vuz120 * vuz300",fontsize=16,color="magenta"];91 -> 116[label="",style="dashed", color="magenta", weight=3]; 91 -> 117[label="",style="dashed", color="magenta", weight=3]; 92 -> 37[label="",style="dashed", color="red", weight=0]; 92[label="vuz121 * vuz301",fontsize=16,color="magenta"];92 -> 118[label="",style="dashed", color="magenta", weight=3]; 92 -> 119[label="",style="dashed", color="magenta", weight=3]; 93[label="vuz130",fontsize=16,color="green",shape="box"];94[label="vuz300",fontsize=16,color="green",shape="box"];95 -> 35[label="",style="dashed", color="red", weight=0]; 95[label="(*) vuz7 vuz80",fontsize=16,color="magenta"];95 -> 120[label="",style="dashed", color="magenta", weight=3]; 95 -> 121[label="",style="dashed", color="magenta", weight=3]; 96 -> 37[label="",style="dashed", color="red", weight=0]; 96[label="(*) vuz7 vuz80",fontsize=16,color="magenta"];96 -> 122[label="",style="dashed", color="magenta", weight=3]; 96 -> 123[label="",style="dashed", color="magenta", weight=3]; 97 -> 39[label="",style="dashed", color="red", weight=0]; 97[label="(*) vuz7 vuz80",fontsize=16,color="magenta"];97 -> 124[label="",style="dashed", color="magenta", weight=3]; 97 -> 125[label="",style="dashed", color="magenta", weight=3]; 98 -> 41[label="",style="dashed", color="red", weight=0]; 98[label="(*) vuz7 vuz80",fontsize=16,color="magenta"];98 -> 126[label="",style="dashed", color="magenta", weight=3]; 98 -> 127[label="",style="dashed", color="magenta", weight=3]; 99 -> 43[label="",style="dashed", color="red", weight=0]; 99[label="(*) vuz7 vuz80",fontsize=16,color="magenta"];99 -> 128[label="",style="dashed", color="magenta", weight=3]; 99 -> 129[label="",style="dashed", color="magenta", weight=3]; 100[label="vuz90",fontsize=16,color="green",shape="box"];101[label="vuz300",fontsize=16,color="green",shape="box"];102[label="vuz91",fontsize=16,color="green",shape="box"];103[label="vuz301",fontsize=16,color="green",shape="box"];104[label="primMulNat (Succ vuz1000) vuz300",fontsize=16,color="burlywood",shape="box"];1124[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];104 -> 1124[label="",style="solid", color="burlywood", weight=9]; 1124 -> 130[label="",style="solid", color="burlywood", weight=3]; 1125[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];104 -> 1125[label="",style="solid", color="burlywood", weight=9]; 1125 -> 131[label="",style="solid", color="burlywood", weight=3]; 105[label="primMulNat Zero vuz300",fontsize=16,color="burlywood",shape="box"];1126[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];105 -> 1126[label="",style="solid", color="burlywood", weight=9]; 1126 -> 132[label="",style="solid", color="burlywood", weight=3]; 1127[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];105 -> 1127[label="",style="solid", color="burlywood", weight=9]; 1127 -> 133[label="",style="solid", color="burlywood", weight=3]; 106[label="vuz300",fontsize=16,color="green",shape="box"];107[label="vuz100",fontsize=16,color="green",shape="box"];108[label="vuz100",fontsize=16,color="green",shape="box"];109[label="vuz300",fontsize=16,color="green",shape="box"];111[label="vuz110",fontsize=16,color="green",shape="box"];112[label="vuz111",fontsize=16,color="green",shape="box"];113[label="vuz300",fontsize=16,color="green",shape="box"];114[label="vuz301",fontsize=16,color="green",shape="box"];115[label="vuz111 * vuz301 == fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];1128[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];115 -> 1128[label="",style="solid", color="blue", weight=9]; 1128 -> 134[label="",style="solid", color="blue", weight=3]; 1129[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];115 -> 1129[label="",style="solid", color="blue", weight=9]; 1129 -> 135[label="",style="solid", color="blue", weight=3]; 110[label="reduce2Reduce1 (vuz20 * vuz21) (vuz22 * vuz23) (vuz20 * vuz21) (vuz22 * vuz23) vuz24",fontsize=16,color="burlywood",shape="triangle"];1130[label="vuz24/False",fontsize=10,color="white",style="solid",shape="box"];110 -> 1130[label="",style="solid", color="burlywood", weight=9]; 1130 -> 136[label="",style="solid", color="burlywood", weight=3]; 1131[label="vuz24/True",fontsize=10,color="white",style="solid",shape="box"];110 -> 1131[label="",style="solid", color="burlywood", weight=9]; 1131 -> 137[label="",style="solid", color="burlywood", weight=3]; 116[label="vuz120",fontsize=16,color="green",shape="box"];117[label="vuz300",fontsize=16,color="green",shape="box"];118[label="vuz121",fontsize=16,color="green",shape="box"];119[label="vuz301",fontsize=16,color="green",shape="box"];120[label="vuz7",fontsize=16,color="green",shape="box"];121[label="vuz80",fontsize=16,color="green",shape="box"];122[label="vuz7",fontsize=16,color="green",shape="box"];123[label="vuz80",fontsize=16,color="green",shape="box"];124[label="vuz7",fontsize=16,color="green",shape="box"];125[label="vuz80",fontsize=16,color="green",shape="box"];126[label="vuz80",fontsize=16,color="green",shape="box"];127[label="vuz7",fontsize=16,color="green",shape="box"];128[label="vuz80",fontsize=16,color="green",shape="box"];129[label="vuz7",fontsize=16,color="green",shape="box"];130[label="primMulNat (Succ vuz1000) (Succ vuz3000)",fontsize=16,color="black",shape="box"];130 -> 138[label="",style="solid", color="black", weight=3]; 131[label="primMulNat (Succ vuz1000) Zero",fontsize=16,color="black",shape="box"];131 -> 139[label="",style="solid", color="black", weight=3]; 132[label="primMulNat Zero (Succ vuz3000)",fontsize=16,color="black",shape="box"];132 -> 140[label="",style="solid", color="black", weight=3]; 133[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];133 -> 141[label="",style="solid", color="black", weight=3]; 134 -> 142[label="",style="dashed", color="red", weight=0]; 134[label="vuz111 * vuz301 == fromInt (Pos Zero)",fontsize=16,color="magenta"];134 -> 143[label="",style="dashed", color="magenta", weight=3]; 135 -> 144[label="",style="dashed", color="red", weight=0]; 135[label="vuz111 * vuz301 == fromInt (Pos Zero)",fontsize=16,color="magenta"];135 -> 145[label="",style="dashed", color="magenta", weight=3]; 136[label="reduce2Reduce1 (vuz20 * vuz21) (vuz22 * vuz23) (vuz20 * vuz21) (vuz22 * vuz23) False",fontsize=16,color="black",shape="box"];136 -> 146[label="",style="solid", color="black", weight=3]; 137[label="reduce2Reduce1 (vuz20 * vuz21) (vuz22 * vuz23) (vuz20 * vuz21) (vuz22 * vuz23) True",fontsize=16,color="black",shape="box"];137 -> 147[label="",style="solid", color="black", weight=3]; 138 -> 148[label="",style="dashed", color="red", weight=0]; 138[label="primPlusNat (primMulNat vuz1000 (Succ vuz3000)) (Succ vuz3000)",fontsize=16,color="magenta"];138 -> 149[label="",style="dashed", color="magenta", weight=3]; 139[label="Zero",fontsize=16,color="green",shape="box"];140[label="Zero",fontsize=16,color="green",shape="box"];141[label="Zero",fontsize=16,color="green",shape="box"];143 -> 37[label="",style="dashed", color="red", weight=0]; 143[label="vuz111 * vuz301",fontsize=16,color="magenta"];143 -> 150[label="",style="dashed", color="magenta", weight=3]; 143 -> 151[label="",style="dashed", color="magenta", weight=3]; 142[label="vuz25 == fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];142 -> 152[label="",style="solid", color="black", weight=3]; 145 -> 43[label="",style="dashed", color="red", weight=0]; 145[label="vuz111 * vuz301",fontsize=16,color="magenta"];145 -> 153[label="",style="dashed", color="magenta", weight=3]; 145 -> 154[label="",style="dashed", color="magenta", weight=3]; 144[label="vuz26 == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="triangle"];1132[label="vuz26/Integer vuz260",fontsize=10,color="white",style="solid",shape="box"];144 -> 1132[label="",style="solid", color="burlywood", weight=9]; 1132 -> 155[label="",style="solid", color="burlywood", weight=3]; 146[label="reduce2Reduce0 (vuz20 * vuz21) (vuz22 * vuz23) (vuz20 * vuz21) (vuz22 * vuz23) otherwise",fontsize=16,color="black",shape="box"];146 -> 156[label="",style="solid", color="black", weight=3]; 147[label="error []",fontsize=16,color="black",shape="box"];147 -> 157[label="",style="solid", color="black", weight=3]; 149 -> 86[label="",style="dashed", color="red", weight=0]; 149[label="primMulNat vuz1000 (Succ vuz3000)",fontsize=16,color="magenta"];149 -> 158[label="",style="dashed", color="magenta", weight=3]; 149 -> 159[label="",style="dashed", color="magenta", weight=3]; 148[label="primPlusNat vuz27 (Succ vuz3000)",fontsize=16,color="burlywood",shape="triangle"];1133[label="vuz27/Succ vuz270",fontsize=10,color="white",style="solid",shape="box"];148 -> 1133[label="",style="solid", color="burlywood", weight=9]; 1133 -> 160[label="",style="solid", color="burlywood", weight=3]; 1134[label="vuz27/Zero",fontsize=10,color="white",style="solid",shape="box"];148 -> 1134[label="",style="solid", color="burlywood", weight=9]; 1134 -> 161[label="",style="solid", color="burlywood", weight=3]; 150[label="vuz111",fontsize=16,color="green",shape="box"];151[label="vuz301",fontsize=16,color="green",shape="box"];152[label="primEqInt vuz25 (fromInt (Pos Zero))",fontsize=16,color="burlywood",shape="box"];1135[label="vuz25/Pos vuz250",fontsize=10,color="white",style="solid",shape="box"];152 -> 1135[label="",style="solid", color="burlywood", weight=9]; 1135 -> 162[label="",style="solid", color="burlywood", weight=3]; 1136[label="vuz25/Neg vuz250",fontsize=10,color="white",style="solid",shape="box"];152 -> 1136[label="",style="solid", color="burlywood", weight=9]; 1136 -> 163[label="",style="solid", color="burlywood", weight=3]; 153[label="vuz301",fontsize=16,color="green",shape="box"];154[label="vuz111",fontsize=16,color="green",shape="box"];155[label="Integer vuz260 == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];155 -> 164[label="",style="solid", color="black", weight=3]; 156[label="reduce2Reduce0 (vuz20 * vuz21) (vuz22 * vuz23) (vuz20 * vuz21) (vuz22 * vuz23) True",fontsize=16,color="black",shape="box"];156 -> 165[label="",style="solid", color="black", weight=3]; 157[label="error []",fontsize=16,color="red",shape="box"];158[label="vuz1000",fontsize=16,color="green",shape="box"];159[label="Succ vuz3000",fontsize=16,color="green",shape="box"];160[label="primPlusNat (Succ vuz270) (Succ vuz3000)",fontsize=16,color="black",shape="box"];160 -> 166[label="",style="solid", color="black", weight=3]; 161[label="primPlusNat Zero (Succ vuz3000)",fontsize=16,color="black",shape="box"];161 -> 167[label="",style="solid", color="black", weight=3]; 162[label="primEqInt (Pos vuz250) (fromInt (Pos Zero))",fontsize=16,color="burlywood",shape="box"];1137[label="vuz250/Succ vuz2500",fontsize=10,color="white",style="solid",shape="box"];162 -> 1137[label="",style="solid", color="burlywood", weight=9]; 1137 -> 168[label="",style="solid", color="burlywood", weight=3]; 1138[label="vuz250/Zero",fontsize=10,color="white",style="solid",shape="box"];162 -> 1138[label="",style="solid", color="burlywood", weight=9]; 1138 -> 169[label="",style="solid", color="burlywood", weight=3]; 163[label="primEqInt (Neg vuz250) (fromInt (Pos Zero))",fontsize=16,color="burlywood",shape="box"];1139[label="vuz250/Succ vuz2500",fontsize=10,color="white",style="solid",shape="box"];163 -> 1139[label="",style="solid", color="burlywood", weight=9]; 1139 -> 170[label="",style="solid", color="burlywood", weight=3]; 1140[label="vuz250/Zero",fontsize=10,color="white",style="solid",shape="box"];163 -> 1140[label="",style="solid", color="burlywood", weight=9]; 1140 -> 171[label="",style="solid", color="burlywood", weight=3]; 164[label="Integer vuz260 == Integer (Pos Zero)",fontsize=16,color="black",shape="box"];164 -> 172[label="",style="solid", color="black", weight=3]; 165[label="vuz20 * vuz21 `quot` reduce2D (vuz20 * vuz21) (vuz22 * vuz23) :% (vuz22 * vuz23 `quot` reduce2D (vuz20 * vuz21) (vuz22 * vuz23))",fontsize=16,color="green",shape="box"];165 -> 173[label="",style="dashed", color="green", weight=3]; 165 -> 174[label="",style="dashed", color="green", weight=3]; 166[label="Succ (Succ (primPlusNat vuz270 vuz3000))",fontsize=16,color="green",shape="box"];166 -> 175[label="",style="dashed", color="green", weight=3]; 167[label="Succ vuz3000",fontsize=16,color="green",shape="box"];168[label="primEqInt (Pos (Succ vuz2500)) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];168 -> 176[label="",style="solid", color="black", weight=3]; 169[label="primEqInt (Pos Zero) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];169 -> 177[label="",style="solid", color="black", weight=3]; 170[label="primEqInt (Neg (Succ vuz2500)) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];170 -> 178[label="",style="solid", color="black", weight=3]; 171[label="primEqInt (Neg Zero) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];171 -> 179[label="",style="solid", color="black", weight=3]; 172[label="primEqInt vuz260 (Pos Zero)",fontsize=16,color="burlywood",shape="triangle"];1141[label="vuz260/Pos vuz2600",fontsize=10,color="white",style="solid",shape="box"];172 -> 1141[label="",style="solid", color="burlywood", weight=9]; 1141 -> 180[label="",style="solid", color="burlywood", weight=3]; 1142[label="vuz260/Neg vuz2600",fontsize=10,color="white",style="solid",shape="box"];172 -> 1142[label="",style="solid", color="burlywood", weight=9]; 1142 -> 181[label="",style="solid", color="burlywood", weight=3]; 173[label="vuz20 * vuz21 `quot` reduce2D (vuz20 * vuz21) (vuz22 * vuz23)",fontsize=16,color="blue",shape="box"];1143[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];173 -> 1143[label="",style="solid", color="blue", weight=9]; 1143 -> 182[label="",style="solid", color="blue", weight=3]; 1144[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];173 -> 1144[label="",style="solid", color="blue", weight=9]; 1144 -> 183[label="",style="solid", color="blue", weight=3]; 174[label="vuz22 * vuz23 `quot` reduce2D (vuz20 * vuz21) (vuz22 * vuz23)",fontsize=16,color="blue",shape="box"];1145[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];174 -> 1145[label="",style="solid", color="blue", weight=9]; 1145 -> 184[label="",style="solid", color="blue", weight=3]; 1146[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];174 -> 1146[label="",style="solid", color="blue", weight=9]; 1146 -> 185[label="",style="solid", color="blue", weight=3]; 175[label="primPlusNat vuz270 vuz3000",fontsize=16,color="burlywood",shape="triangle"];1147[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];175 -> 1147[label="",style="solid", color="burlywood", weight=9]; 1147 -> 186[label="",style="solid", color="burlywood", weight=3]; 1148[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];175 -> 1148[label="",style="solid", color="burlywood", weight=9]; 1148 -> 187[label="",style="solid", color="burlywood", weight=3]; 176 -> 172[label="",style="dashed", color="red", weight=0]; 176[label="primEqInt (Pos (Succ vuz2500)) (Pos Zero)",fontsize=16,color="magenta"];176 -> 188[label="",style="dashed", color="magenta", weight=3]; 177 -> 172[label="",style="dashed", color="red", weight=0]; 177[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="magenta"];177 -> 189[label="",style="dashed", color="magenta", weight=3]; 178 -> 172[label="",style="dashed", color="red", weight=0]; 178[label="primEqInt (Neg (Succ vuz2500)) (Pos Zero)",fontsize=16,color="magenta"];178 -> 190[label="",style="dashed", color="magenta", weight=3]; 179 -> 172[label="",style="dashed", color="red", weight=0]; 179[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="magenta"];179 -> 191[label="",style="dashed", color="magenta", weight=3]; 180[label="primEqInt (Pos vuz2600) (Pos Zero)",fontsize=16,color="burlywood",shape="box"];1149[label="vuz2600/Succ vuz26000",fontsize=10,color="white",style="solid",shape="box"];180 -> 1149[label="",style="solid", color="burlywood", weight=9]; 1149 -> 192[label="",style="solid", color="burlywood", weight=3]; 1150[label="vuz2600/Zero",fontsize=10,color="white",style="solid",shape="box"];180 -> 1150[label="",style="solid", color="burlywood", weight=9]; 1150 -> 193[label="",style="solid", color="burlywood", weight=3]; 181[label="primEqInt (Neg vuz2600) (Pos Zero)",fontsize=16,color="burlywood",shape="box"];1151[label="vuz2600/Succ vuz26000",fontsize=10,color="white",style="solid",shape="box"];181 -> 1151[label="",style="solid", color="burlywood", weight=9]; 1151 -> 194[label="",style="solid", color="burlywood", weight=3]; 1152[label="vuz2600/Zero",fontsize=10,color="white",style="solid",shape="box"];181 -> 1152[label="",style="solid", color="burlywood", weight=9]; 1152 -> 195[label="",style="solid", color="burlywood", weight=3]; 182 -> 196[label="",style="dashed", color="red", weight=0]; 182[label="vuz20 * vuz21 `quot` reduce2D (vuz20 * vuz21) (vuz22 * vuz23)",fontsize=16,color="magenta"];182 -> 197[label="",style="dashed", color="magenta", weight=3]; 182 -> 198[label="",style="dashed", color="magenta", weight=3]; 182 -> 199[label="",style="dashed", color="magenta", weight=3]; 183 -> 203[label="",style="dashed", color="red", weight=0]; 183[label="vuz20 * vuz21 `quot` reduce2D (vuz20 * vuz21) (vuz22 * vuz23)",fontsize=16,color="magenta"];183 -> 204[label="",style="dashed", color="magenta", weight=3]; 183 -> 205[label="",style="dashed", color="magenta", weight=3]; 183 -> 206[label="",style="dashed", color="magenta", weight=3]; 184 -> 196[label="",style="dashed", color="red", weight=0]; 184[label="vuz22 * vuz23 `quot` reduce2D (vuz20 * vuz21) (vuz22 * vuz23)",fontsize=16,color="magenta"];184 -> 200[label="",style="dashed", color="magenta", weight=3]; 184 -> 201[label="",style="dashed", color="magenta", weight=3]; 184 -> 202[label="",style="dashed", color="magenta", weight=3]; 185 -> 203[label="",style="dashed", color="red", weight=0]; 185[label="vuz22 * vuz23 `quot` reduce2D (vuz20 * vuz21) (vuz22 * vuz23)",fontsize=16,color="magenta"];185 -> 207[label="",style="dashed", color="magenta", weight=3]; 185 -> 208[label="",style="dashed", color="magenta", weight=3]; 185 -> 209[label="",style="dashed", color="magenta", weight=3]; 186[label="primPlusNat (Succ vuz2700) vuz3000",fontsize=16,color="burlywood",shape="box"];1153[label="vuz3000/Succ vuz30000",fontsize=10,color="white",style="solid",shape="box"];186 -> 1153[label="",style="solid", color="burlywood", weight=9]; 1153 -> 210[label="",style="solid", color="burlywood", weight=3]; 1154[label="vuz3000/Zero",fontsize=10,color="white",style="solid",shape="box"];186 -> 1154[label="",style="solid", color="burlywood", weight=9]; 1154 -> 211[label="",style="solid", color="burlywood", weight=3]; 187[label="primPlusNat Zero vuz3000",fontsize=16,color="burlywood",shape="box"];1155[label="vuz3000/Succ vuz30000",fontsize=10,color="white",style="solid",shape="box"];187 -> 1155[label="",style="solid", color="burlywood", weight=9]; 1155 -> 212[label="",style="solid", color="burlywood", weight=3]; 1156[label="vuz3000/Zero",fontsize=10,color="white",style="solid",shape="box"];187 -> 1156[label="",style="solid", color="burlywood", weight=9]; 1156 -> 213[label="",style="solid", color="burlywood", weight=3]; 188[label="Pos (Succ vuz2500)",fontsize=16,color="green",shape="box"];189[label="Pos Zero",fontsize=16,color="green",shape="box"];190[label="Neg (Succ vuz2500)",fontsize=16,color="green",shape="box"];191[label="Neg Zero",fontsize=16,color="green",shape="box"];192[label="primEqInt (Pos (Succ vuz26000)) (Pos Zero)",fontsize=16,color="black",shape="box"];192 -> 214[label="",style="solid", color="black", weight=3]; 193[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];193 -> 215[label="",style="solid", color="black", weight=3]; 194[label="primEqInt (Neg (Succ vuz26000)) (Pos Zero)",fontsize=16,color="black",shape="box"];194 -> 216[label="",style="solid", color="black", weight=3]; 195[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];195 -> 217[label="",style="solid", color="black", weight=3]; 197 -> 43[label="",style="dashed", color="red", weight=0]; 197[label="vuz20 * vuz21",fontsize=16,color="magenta"];197 -> 218[label="",style="dashed", color="magenta", weight=3]; 197 -> 219[label="",style="dashed", color="magenta", weight=3]; 198 -> 43[label="",style="dashed", color="red", weight=0]; 198[label="vuz20 * vuz21",fontsize=16,color="magenta"];198 -> 220[label="",style="dashed", color="magenta", weight=3]; 198 -> 221[label="",style="dashed", color="magenta", weight=3]; 199 -> 43[label="",style="dashed", color="red", weight=0]; 199[label="vuz22 * vuz23",fontsize=16,color="magenta"];199 -> 222[label="",style="dashed", color="magenta", weight=3]; 199 -> 223[label="",style="dashed", color="magenta", weight=3]; 196[label="vuz28 `quot` reduce2D vuz30 vuz29",fontsize=16,color="burlywood",shape="triangle"];1157[label="vuz28/Integer vuz280",fontsize=10,color="white",style="solid",shape="box"];196 -> 1157[label="",style="solid", color="burlywood", weight=9]; 1157 -> 224[label="",style="solid", color="burlywood", weight=3]; 204 -> 37[label="",style="dashed", color="red", weight=0]; 204[label="vuz20 * vuz21",fontsize=16,color="magenta"];204 -> 225[label="",style="dashed", color="magenta", weight=3]; 204 -> 226[label="",style="dashed", color="magenta", weight=3]; 205 -> 37[label="",style="dashed", color="red", weight=0]; 205[label="vuz20 * vuz21",fontsize=16,color="magenta"];205 -> 227[label="",style="dashed", color="magenta", weight=3]; 205 -> 228[label="",style="dashed", color="magenta", weight=3]; 206 -> 37[label="",style="dashed", color="red", weight=0]; 206[label="vuz22 * vuz23",fontsize=16,color="magenta"];206 -> 229[label="",style="dashed", color="magenta", weight=3]; 206 -> 230[label="",style="dashed", color="magenta", weight=3]; 203[label="vuz31 `quot` reduce2D vuz33 vuz32",fontsize=16,color="black",shape="triangle"];203 -> 231[label="",style="solid", color="black", weight=3]; 200 -> 43[label="",style="dashed", color="red", weight=0]; 200[label="vuz20 * vuz21",fontsize=16,color="magenta"];200 -> 232[label="",style="dashed", color="magenta", weight=3]; 200 -> 233[label="",style="dashed", color="magenta", weight=3]; 201 -> 43[label="",style="dashed", color="red", weight=0]; 201[label="vuz22 * vuz23",fontsize=16,color="magenta"];201 -> 234[label="",style="dashed", color="magenta", weight=3]; 201 -> 235[label="",style="dashed", color="magenta", weight=3]; 202 -> 43[label="",style="dashed", color="red", weight=0]; 202[label="vuz22 * vuz23",fontsize=16,color="magenta"];202 -> 236[label="",style="dashed", color="magenta", weight=3]; 202 -> 237[label="",style="dashed", color="magenta", weight=3]; 207 -> 37[label="",style="dashed", color="red", weight=0]; 207[label="vuz20 * vuz21",fontsize=16,color="magenta"];207 -> 238[label="",style="dashed", color="magenta", weight=3]; 207 -> 239[label="",style="dashed", color="magenta", weight=3]; 208 -> 37[label="",style="dashed", color="red", weight=0]; 208[label="vuz22 * vuz23",fontsize=16,color="magenta"];208 -> 240[label="",style="dashed", color="magenta", weight=3]; 208 -> 241[label="",style="dashed", color="magenta", weight=3]; 209 -> 37[label="",style="dashed", color="red", weight=0]; 209[label="vuz22 * vuz23",fontsize=16,color="magenta"];209 -> 242[label="",style="dashed", color="magenta", weight=3]; 209 -> 243[label="",style="dashed", color="magenta", weight=3]; 210[label="primPlusNat (Succ vuz2700) (Succ vuz30000)",fontsize=16,color="black",shape="box"];210 -> 244[label="",style="solid", color="black", weight=3]; 211[label="primPlusNat (Succ vuz2700) Zero",fontsize=16,color="black",shape="box"];211 -> 245[label="",style="solid", color="black", weight=3]; 212[label="primPlusNat Zero (Succ vuz30000)",fontsize=16,color="black",shape="box"];212 -> 246[label="",style="solid", color="black", weight=3]; 213[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];213 -> 247[label="",style="solid", color="black", weight=3]; 214[label="False",fontsize=16,color="green",shape="box"];215[label="True",fontsize=16,color="green",shape="box"];216[label="False",fontsize=16,color="green",shape="box"];217[label="True",fontsize=16,color="green",shape="box"];218[label="vuz21",fontsize=16,color="green",shape="box"];219[label="vuz20",fontsize=16,color="green",shape="box"];220[label="vuz21",fontsize=16,color="green",shape="box"];221[label="vuz20",fontsize=16,color="green",shape="box"];222[label="vuz23",fontsize=16,color="green",shape="box"];223[label="vuz22",fontsize=16,color="green",shape="box"];224[label="Integer vuz280 `quot` reduce2D vuz30 vuz29",fontsize=16,color="black",shape="box"];224 -> 248[label="",style="solid", color="black", weight=3]; 225[label="vuz20",fontsize=16,color="green",shape="box"];226[label="vuz21",fontsize=16,color="green",shape="box"];227[label="vuz20",fontsize=16,color="green",shape="box"];228[label="vuz21",fontsize=16,color="green",shape="box"];229[label="vuz22",fontsize=16,color="green",shape="box"];230[label="vuz23",fontsize=16,color="green",shape="box"];231[label="primQuotInt vuz31 (reduce2D vuz33 vuz32)",fontsize=16,color="burlywood",shape="box"];1158[label="vuz31/Pos vuz310",fontsize=10,color="white",style="solid",shape="box"];231 -> 1158[label="",style="solid", color="burlywood", weight=9]; 1158 -> 249[label="",style="solid", color="burlywood", weight=3]; 1159[label="vuz31/Neg vuz310",fontsize=10,color="white",style="solid",shape="box"];231 -> 1159[label="",style="solid", color="burlywood", weight=9]; 1159 -> 250[label="",style="solid", color="burlywood", weight=3]; 232[label="vuz21",fontsize=16,color="green",shape="box"];233[label="vuz20",fontsize=16,color="green",shape="box"];234[label="vuz23",fontsize=16,color="green",shape="box"];235[label="vuz22",fontsize=16,color="green",shape="box"];236[label="vuz23",fontsize=16,color="green",shape="box"];237[label="vuz22",fontsize=16,color="green",shape="box"];238[label="vuz20",fontsize=16,color="green",shape="box"];239[label="vuz21",fontsize=16,color="green",shape="box"];240[label="vuz22",fontsize=16,color="green",shape="box"];241[label="vuz23",fontsize=16,color="green",shape="box"];242[label="vuz22",fontsize=16,color="green",shape="box"];243[label="vuz23",fontsize=16,color="green",shape="box"];244[label="Succ (Succ (primPlusNat vuz2700 vuz30000))",fontsize=16,color="green",shape="box"];244 -> 251[label="",style="dashed", color="green", weight=3]; 245[label="Succ vuz2700",fontsize=16,color="green",shape="box"];246[label="Succ vuz30000",fontsize=16,color="green",shape="box"];247[label="Zero",fontsize=16,color="green",shape="box"];248 -> 338[label="",style="dashed", color="red", weight=0]; 248[label="Integer vuz280 `quot` gcd vuz30 vuz29",fontsize=16,color="magenta"];248 -> 339[label="",style="dashed", color="magenta", weight=3]; 249[label="primQuotInt (Pos vuz310) (reduce2D vuz33 vuz32)",fontsize=16,color="black",shape="box"];249 -> 253[label="",style="solid", color="black", weight=3]; 250[label="primQuotInt (Neg vuz310) (reduce2D vuz33 vuz32)",fontsize=16,color="black",shape="box"];250 -> 254[label="",style="solid", color="black", weight=3]; 251 -> 175[label="",style="dashed", color="red", weight=0]; 251[label="primPlusNat vuz2700 vuz30000",fontsize=16,color="magenta"];251 -> 255[label="",style="dashed", color="magenta", weight=3]; 251 -> 256[label="",style="dashed", color="magenta", weight=3]; 339[label="gcd vuz30 vuz29",fontsize=16,color="black",shape="box"];339 -> 355[label="",style="solid", color="black", weight=3]; 338[label="Integer vuz280 `quot` vuz45",fontsize=16,color="burlywood",shape="triangle"];1160[label="vuz45/Integer vuz450",fontsize=10,color="white",style="solid",shape="box"];338 -> 1160[label="",style="solid", color="burlywood", weight=9]; 1160 -> 356[label="",style="solid", color="burlywood", weight=3]; 253 -> 374[label="",style="dashed", color="red", weight=0]; 253[label="primQuotInt (Pos vuz310) (gcd vuz33 vuz32)",fontsize=16,color="magenta"];253 -> 375[label="",style="dashed", color="magenta", weight=3]; 254[label="primQuotInt (Neg vuz310) (gcd vuz33 vuz32)",fontsize=16,color="black",shape="box"];254 -> 259[label="",style="solid", color="black", weight=3]; 255[label="vuz2700",fontsize=16,color="green",shape="box"];256[label="vuz30000",fontsize=16,color="green",shape="box"];355[label="gcd3 vuz30 vuz29",fontsize=16,color="black",shape="box"];355 -> 362[label="",style="solid", color="black", weight=3]; 356[label="Integer vuz280 `quot` Integer vuz450",fontsize=16,color="black",shape="box"];356 -> 363[label="",style="solid", color="black", weight=3]; 375[label="gcd vuz33 vuz32",fontsize=16,color="black",shape="box"];375 -> 391[label="",style="solid", color="black", weight=3]; 374[label="primQuotInt (Pos vuz310) vuz49",fontsize=16,color="burlywood",shape="triangle"];1161[label="vuz49/Pos vuz490",fontsize=10,color="white",style="solid",shape="box"];374 -> 1161[label="",style="solid", color="burlywood", weight=9]; 1161 -> 392[label="",style="solid", color="burlywood", weight=3]; 1162[label="vuz49/Neg vuz490",fontsize=10,color="white",style="solid",shape="box"];374 -> 1162[label="",style="solid", color="burlywood", weight=9]; 1162 -> 393[label="",style="solid", color="burlywood", weight=3]; 259[label="primQuotInt (Neg vuz310) (gcd3 vuz33 vuz32)",fontsize=16,color="black",shape="box"];259 -> 263[label="",style="solid", color="black", weight=3]; 362 -> 368[label="",style="dashed", color="red", weight=0]; 362[label="gcd2 (vuz30 == fromInt (Pos Zero)) vuz30 vuz29",fontsize=16,color="magenta"];362 -> 369[label="",style="dashed", color="magenta", weight=3]; 363[label="Integer (primQuotInt vuz280 vuz450)",fontsize=16,color="green",shape="box"];363 -> 370[label="",style="dashed", color="green", weight=3]; 391[label="gcd3 vuz33 vuz32",fontsize=16,color="black",shape="box"];391 -> 403[label="",style="solid", color="black", weight=3]; 392[label="primQuotInt (Pos vuz310) (Pos vuz490)",fontsize=16,color="burlywood",shape="box"];1163[label="vuz490/Succ vuz4900",fontsize=10,color="white",style="solid",shape="box"];392 -> 1163[label="",style="solid", color="burlywood", weight=9]; 1163 -> 404[label="",style="solid", color="burlywood", weight=3]; 1164[label="vuz490/Zero",fontsize=10,color="white",style="solid",shape="box"];392 -> 1164[label="",style="solid", color="burlywood", weight=9]; 1164 -> 405[label="",style="solid", color="burlywood", weight=3]; 393[label="primQuotInt (Pos vuz310) (Neg vuz490)",fontsize=16,color="burlywood",shape="box"];1165[label="vuz490/Succ vuz4900",fontsize=10,color="white",style="solid",shape="box"];393 -> 1165[label="",style="solid", color="burlywood", weight=9]; 1165 -> 406[label="",style="solid", color="burlywood", weight=3]; 1166[label="vuz490/Zero",fontsize=10,color="white",style="solid",shape="box"];393 -> 1166[label="",style="solid", color="burlywood", weight=9]; 1166 -> 407[label="",style="solid", color="burlywood", weight=3]; 263 -> 269[label="",style="dashed", color="red", weight=0]; 263[label="primQuotInt (Neg vuz310) (gcd2 (vuz33 == fromInt (Pos Zero)) vuz33 vuz32)",fontsize=16,color="magenta"];263 -> 270[label="",style="dashed", color="magenta", weight=3]; 369 -> 144[label="",style="dashed", color="red", weight=0]; 369[label="vuz30 == fromInt (Pos Zero)",fontsize=16,color="magenta"];369 -> 371[label="",style="dashed", color="magenta", weight=3]; 368[label="gcd2 vuz48 vuz30 vuz29",fontsize=16,color="burlywood",shape="triangle"];1167[label="vuz48/False",fontsize=10,color="white",style="solid",shape="box"];368 -> 1167[label="",style="solid", color="burlywood", weight=9]; 1167 -> 372[label="",style="solid", color="burlywood", weight=3]; 1168[label="vuz48/True",fontsize=10,color="white",style="solid",shape="box"];368 -> 1168[label="",style="solid", color="burlywood", weight=9]; 1168 -> 373[label="",style="solid", color="burlywood", weight=3]; 370[label="primQuotInt vuz280 vuz450",fontsize=16,color="burlywood",shape="triangle"];1169[label="vuz280/Pos vuz2800",fontsize=10,color="white",style="solid",shape="box"];370 -> 1169[label="",style="solid", color="burlywood", weight=9]; 1169 -> 394[label="",style="solid", color="burlywood", weight=3]; 1170[label="vuz280/Neg vuz2800",fontsize=10,color="white",style="solid",shape="box"];370 -> 1170[label="",style="solid", color="burlywood", weight=9]; 1170 -> 395[label="",style="solid", color="burlywood", weight=3]; 403 -> 415[label="",style="dashed", color="red", weight=0]; 403[label="gcd2 (vuz33 == fromInt (Pos Zero)) vuz33 vuz32",fontsize=16,color="magenta"];403 -> 416[label="",style="dashed", color="magenta", weight=3]; 404[label="primQuotInt (Pos vuz310) (Pos (Succ vuz4900))",fontsize=16,color="black",shape="box"];404 -> 417[label="",style="solid", color="black", weight=3]; 405[label="primQuotInt (Pos vuz310) (Pos Zero)",fontsize=16,color="black",shape="box"];405 -> 418[label="",style="solid", color="black", weight=3]; 406[label="primQuotInt (Pos vuz310) (Neg (Succ vuz4900))",fontsize=16,color="black",shape="box"];406 -> 419[label="",style="solid", color="black", weight=3]; 407[label="primQuotInt (Pos vuz310) (Neg Zero)",fontsize=16,color="black",shape="box"];407 -> 420[label="",style="solid", color="black", weight=3]; 270 -> 142[label="",style="dashed", color="red", weight=0]; 270[label="vuz33 == fromInt (Pos Zero)",fontsize=16,color="magenta"];270 -> 276[label="",style="dashed", color="magenta", weight=3]; 269[label="primQuotInt (Neg vuz310) (gcd2 vuz36 vuz33 vuz32)",fontsize=16,color="burlywood",shape="triangle"];1171[label="vuz36/False",fontsize=10,color="white",style="solid",shape="box"];269 -> 1171[label="",style="solid", color="burlywood", weight=9]; 1171 -> 277[label="",style="solid", color="burlywood", weight=3]; 1172[label="vuz36/True",fontsize=10,color="white",style="solid",shape="box"];269 -> 1172[label="",style="solid", color="burlywood", weight=9]; 1172 -> 278[label="",style="solid", color="burlywood", weight=3]; 371[label="vuz30",fontsize=16,color="green",shape="box"];372[label="gcd2 False vuz30 vuz29",fontsize=16,color="black",shape="box"];372 -> 396[label="",style="solid", color="black", weight=3]; 373[label="gcd2 True vuz30 vuz29",fontsize=16,color="black",shape="box"];373 -> 397[label="",style="solid", color="black", weight=3]; 394[label="primQuotInt (Pos vuz2800) vuz450",fontsize=16,color="burlywood",shape="box"];1173[label="vuz450/Pos vuz4500",fontsize=10,color="white",style="solid",shape="box"];394 -> 1173[label="",style="solid", color="burlywood", weight=9]; 1173 -> 408[label="",style="solid", color="burlywood", weight=3]; 1174[label="vuz450/Neg vuz4500",fontsize=10,color="white",style="solid",shape="box"];394 -> 1174[label="",style="solid", color="burlywood", weight=9]; 1174 -> 409[label="",style="solid", color="burlywood", weight=3]; 395[label="primQuotInt (Neg vuz2800) vuz450",fontsize=16,color="burlywood",shape="box"];1175[label="vuz450/Pos vuz4500",fontsize=10,color="white",style="solid",shape="box"];395 -> 1175[label="",style="solid", color="burlywood", weight=9]; 1175 -> 410[label="",style="solid", color="burlywood", weight=3]; 1176[label="vuz450/Neg vuz4500",fontsize=10,color="white",style="solid",shape="box"];395 -> 1176[label="",style="solid", color="burlywood", weight=9]; 1176 -> 411[label="",style="solid", color="burlywood", weight=3]; 416 -> 142[label="",style="dashed", color="red", weight=0]; 416[label="vuz33 == fromInt (Pos Zero)",fontsize=16,color="magenta"];416 -> 421[label="",style="dashed", color="magenta", weight=3]; 415[label="gcd2 vuz51 vuz33 vuz32",fontsize=16,color="burlywood",shape="triangle"];1177[label="vuz51/False",fontsize=10,color="white",style="solid",shape="box"];415 -> 1177[label="",style="solid", color="burlywood", weight=9]; 1177 -> 422[label="",style="solid", color="burlywood", weight=3]; 1178[label="vuz51/True",fontsize=10,color="white",style="solid",shape="box"];415 -> 1178[label="",style="solid", color="burlywood", weight=9]; 1178 -> 423[label="",style="solid", color="burlywood", weight=3]; 417[label="Pos (primDivNatS vuz310 (Succ vuz4900))",fontsize=16,color="green",shape="box"];417 -> 439[label="",style="dashed", color="green", weight=3]; 418[label="error []",fontsize=16,color="black",shape="triangle"];418 -> 440[label="",style="solid", color="black", weight=3]; 419[label="Neg (primDivNatS vuz310 (Succ vuz4900))",fontsize=16,color="green",shape="box"];419 -> 441[label="",style="dashed", color="green", weight=3]; 420 -> 418[label="",style="dashed", color="red", weight=0]; 420[label="error []",fontsize=16,color="magenta"];276[label="vuz33",fontsize=16,color="green",shape="box"];277[label="primQuotInt (Neg vuz310) (gcd2 False vuz33 vuz32)",fontsize=16,color="black",shape="box"];277 -> 284[label="",style="solid", color="black", weight=3]; 278[label="primQuotInt (Neg vuz310) (gcd2 True vuz33 vuz32)",fontsize=16,color="black",shape="box"];278 -> 285[label="",style="solid", color="black", weight=3]; 396[label="gcd0 vuz30 vuz29",fontsize=16,color="black",shape="triangle"];396 -> 412[label="",style="solid", color="black", weight=3]; 397 -> 413[label="",style="dashed", color="red", weight=0]; 397[label="gcd1 (vuz29 == fromInt (Pos Zero)) vuz30 vuz29",fontsize=16,color="magenta"];397 -> 414[label="",style="dashed", color="magenta", weight=3]; 408[label="primQuotInt (Pos vuz2800) (Pos vuz4500)",fontsize=16,color="burlywood",shape="box"];1179[label="vuz4500/Succ vuz45000",fontsize=10,color="white",style="solid",shape="box"];408 -> 1179[label="",style="solid", color="burlywood", weight=9]; 1179 -> 424[label="",style="solid", color="burlywood", weight=3]; 1180[label="vuz4500/Zero",fontsize=10,color="white",style="solid",shape="box"];408 -> 1180[label="",style="solid", color="burlywood", weight=9]; 1180 -> 425[label="",style="solid", color="burlywood", weight=3]; 409[label="primQuotInt (Pos vuz2800) (Neg vuz4500)",fontsize=16,color="burlywood",shape="box"];1181[label="vuz4500/Succ vuz45000",fontsize=10,color="white",style="solid",shape="box"];409 -> 1181[label="",style="solid", color="burlywood", weight=9]; 1181 -> 426[label="",style="solid", color="burlywood", weight=3]; 1182[label="vuz4500/Zero",fontsize=10,color="white",style="solid",shape="box"];409 -> 1182[label="",style="solid", color="burlywood", weight=9]; 1182 -> 427[label="",style="solid", color="burlywood", weight=3]; 410[label="primQuotInt (Neg vuz2800) (Pos vuz4500)",fontsize=16,color="burlywood",shape="box"];1183[label="vuz4500/Succ vuz45000",fontsize=10,color="white",style="solid",shape="box"];410 -> 1183[label="",style="solid", color="burlywood", weight=9]; 1183 -> 428[label="",style="solid", color="burlywood", weight=3]; 1184[label="vuz4500/Zero",fontsize=10,color="white",style="solid",shape="box"];410 -> 1184[label="",style="solid", color="burlywood", weight=9]; 1184 -> 429[label="",style="solid", color="burlywood", weight=3]; 411[label="primQuotInt (Neg vuz2800) (Neg vuz4500)",fontsize=16,color="burlywood",shape="box"];1185[label="vuz4500/Succ vuz45000",fontsize=10,color="white",style="solid",shape="box"];411 -> 1185[label="",style="solid", color="burlywood", weight=9]; 1185 -> 430[label="",style="solid", color="burlywood", weight=3]; 1186[label="vuz4500/Zero",fontsize=10,color="white",style="solid",shape="box"];411 -> 1186[label="",style="solid", color="burlywood", weight=9]; 1186 -> 431[label="",style="solid", color="burlywood", weight=3]; 421[label="vuz33",fontsize=16,color="green",shape="box"];422[label="gcd2 False vuz33 vuz32",fontsize=16,color="black",shape="box"];422 -> 442[label="",style="solid", color="black", weight=3]; 423[label="gcd2 True vuz33 vuz32",fontsize=16,color="black",shape="box"];423 -> 443[label="",style="solid", color="black", weight=3]; 439[label="primDivNatS vuz310 (Succ vuz4900)",fontsize=16,color="burlywood",shape="triangle"];1187[label="vuz310/Succ vuz3100",fontsize=10,color="white",style="solid",shape="box"];439 -> 1187[label="",style="solid", color="burlywood", weight=9]; 1187 -> 459[label="",style="solid", color="burlywood", weight=3]; 1188[label="vuz310/Zero",fontsize=10,color="white",style="solid",shape="box"];439 -> 1188[label="",style="solid", color="burlywood", weight=9]; 1188 -> 460[label="",style="solid", color="burlywood", weight=3]; 440[label="error []",fontsize=16,color="red",shape="box"];441 -> 439[label="",style="dashed", color="red", weight=0]; 441[label="primDivNatS vuz310 (Succ vuz4900)",fontsize=16,color="magenta"];441 -> 461[label="",style="dashed", color="magenta", weight=3]; 284[label="primQuotInt (Neg vuz310) (gcd0 vuz33 vuz32)",fontsize=16,color="black",shape="triangle"];284 -> 293[label="",style="solid", color="black", weight=3]; 285 -> 294[label="",style="dashed", color="red", weight=0]; 285[label="primQuotInt (Neg vuz310) (gcd1 (vuz32 == fromInt (Pos Zero)) vuz33 vuz32)",fontsize=16,color="magenta"];285 -> 295[label="",style="dashed", color="magenta", weight=3]; 412[label="gcd0Gcd' (abs vuz30) (abs vuz29)",fontsize=16,color="black",shape="box"];412 -> 432[label="",style="solid", color="black", weight=3]; 414 -> 144[label="",style="dashed", color="red", weight=0]; 414[label="vuz29 == fromInt (Pos Zero)",fontsize=16,color="magenta"];414 -> 433[label="",style="dashed", color="magenta", weight=3]; 413[label="gcd1 vuz50 vuz30 vuz29",fontsize=16,color="burlywood",shape="triangle"];1189[label="vuz50/False",fontsize=10,color="white",style="solid",shape="box"];413 -> 1189[label="",style="solid", color="burlywood", weight=9]; 1189 -> 434[label="",style="solid", color="burlywood", weight=3]; 1190[label="vuz50/True",fontsize=10,color="white",style="solid",shape="box"];413 -> 1190[label="",style="solid", color="burlywood", weight=9]; 1190 -> 435[label="",style="solid", color="burlywood", weight=3]; 424[label="primQuotInt (Pos vuz2800) (Pos (Succ vuz45000))",fontsize=16,color="black",shape="box"];424 -> 444[label="",style="solid", color="black", weight=3]; 425[label="primQuotInt (Pos vuz2800) (Pos Zero)",fontsize=16,color="black",shape="box"];425 -> 445[label="",style="solid", color="black", weight=3]; 426[label="primQuotInt (Pos vuz2800) (Neg (Succ vuz45000))",fontsize=16,color="black",shape="box"];426 -> 446[label="",style="solid", color="black", weight=3]; 427[label="primQuotInt (Pos vuz2800) (Neg Zero)",fontsize=16,color="black",shape="box"];427 -> 447[label="",style="solid", color="black", weight=3]; 428[label="primQuotInt (Neg vuz2800) (Pos (Succ vuz45000))",fontsize=16,color="black",shape="box"];428 -> 448[label="",style="solid", color="black", weight=3]; 429[label="primQuotInt (Neg vuz2800) (Pos Zero)",fontsize=16,color="black",shape="box"];429 -> 449[label="",style="solid", color="black", weight=3]; 430[label="primQuotInt (Neg vuz2800) (Neg (Succ vuz45000))",fontsize=16,color="black",shape="box"];430 -> 450[label="",style="solid", color="black", weight=3]; 431[label="primQuotInt (Neg vuz2800) (Neg Zero)",fontsize=16,color="black",shape="box"];431 -> 451[label="",style="solid", color="black", weight=3]; 442[label="gcd0 vuz33 vuz32",fontsize=16,color="black",shape="triangle"];442 -> 462[label="",style="solid", color="black", weight=3]; 443 -> 463[label="",style="dashed", color="red", weight=0]; 443[label="gcd1 (vuz32 == fromInt (Pos Zero)) vuz33 vuz32",fontsize=16,color="magenta"];443 -> 464[label="",style="dashed", color="magenta", weight=3]; 459[label="primDivNatS (Succ vuz3100) (Succ vuz4900)",fontsize=16,color="black",shape="box"];459 -> 465[label="",style="solid", color="black", weight=3]; 460[label="primDivNatS Zero (Succ vuz4900)",fontsize=16,color="black",shape="box"];460 -> 466[label="",style="solid", color="black", weight=3]; 461[label="vuz4900",fontsize=16,color="green",shape="box"];293[label="primQuotInt (Neg vuz310) (gcd0Gcd' (abs vuz33) (abs vuz32))",fontsize=16,color="black",shape="box"];293 -> 303[label="",style="solid", color="black", weight=3]; 295 -> 142[label="",style="dashed", color="red", weight=0]; 295[label="vuz32 == fromInt (Pos Zero)",fontsize=16,color="magenta"];295 -> 304[label="",style="dashed", color="magenta", weight=3]; 294[label="primQuotInt (Neg vuz310) (gcd1 vuz39 vuz33 vuz32)",fontsize=16,color="burlywood",shape="triangle"];1191[label="vuz39/False",fontsize=10,color="white",style="solid",shape="box"];294 -> 1191[label="",style="solid", color="burlywood", weight=9]; 1191 -> 305[label="",style="solid", color="burlywood", weight=3]; 1192[label="vuz39/True",fontsize=10,color="white",style="solid",shape="box"];294 -> 1192[label="",style="solid", color="burlywood", weight=9]; 1192 -> 306[label="",style="solid", color="burlywood", weight=3]; 432[label="gcd0Gcd'2 (abs vuz30) (abs vuz29)",fontsize=16,color="black",shape="box"];432 -> 452[label="",style="solid", color="black", weight=3]; 433[label="vuz29",fontsize=16,color="green",shape="box"];434[label="gcd1 False vuz30 vuz29",fontsize=16,color="black",shape="box"];434 -> 453[label="",style="solid", color="black", weight=3]; 435[label="gcd1 True vuz30 vuz29",fontsize=16,color="black",shape="box"];435 -> 454[label="",style="solid", color="black", weight=3]; 444[label="Pos (primDivNatS vuz2800 (Succ vuz45000))",fontsize=16,color="green",shape="box"];444 -> 467[label="",style="dashed", color="green", weight=3]; 445 -> 418[label="",style="dashed", color="red", weight=0]; 445[label="error []",fontsize=16,color="magenta"];446[label="Neg (primDivNatS vuz2800 (Succ vuz45000))",fontsize=16,color="green",shape="box"];446 -> 468[label="",style="dashed", color="green", weight=3]; 447 -> 418[label="",style="dashed", color="red", weight=0]; 447[label="error []",fontsize=16,color="magenta"];448[label="Neg (primDivNatS vuz2800 (Succ vuz45000))",fontsize=16,color="green",shape="box"];448 -> 469[label="",style="dashed", color="green", weight=3]; 449 -> 418[label="",style="dashed", color="red", weight=0]; 449[label="error []",fontsize=16,color="magenta"];450[label="Pos (primDivNatS vuz2800 (Succ vuz45000))",fontsize=16,color="green",shape="box"];450 -> 470[label="",style="dashed", color="green", weight=3]; 451 -> 418[label="",style="dashed", color="red", weight=0]; 451[label="error []",fontsize=16,color="magenta"];462 -> 471[label="",style="dashed", color="red", weight=0]; 462[label="gcd0Gcd' (abs vuz33) (abs vuz32)",fontsize=16,color="magenta"];462 -> 472[label="",style="dashed", color="magenta", weight=3]; 462 -> 473[label="",style="dashed", color="magenta", weight=3]; 464 -> 142[label="",style="dashed", color="red", weight=0]; 464[label="vuz32 == fromInt (Pos Zero)",fontsize=16,color="magenta"];464 -> 476[label="",style="dashed", color="magenta", weight=3]; 463[label="gcd1 vuz54 vuz33 vuz32",fontsize=16,color="burlywood",shape="triangle"];1193[label="vuz54/False",fontsize=10,color="white",style="solid",shape="box"];463 -> 1193[label="",style="solid", color="burlywood", weight=9]; 1193 -> 477[label="",style="solid", color="burlywood", weight=3]; 1194[label="vuz54/True",fontsize=10,color="white",style="solid",shape="box"];463 -> 1194[label="",style="solid", color="burlywood", weight=9]; 1194 -> 478[label="",style="solid", color="burlywood", weight=3]; 465[label="primDivNatS0 vuz3100 vuz4900 (primGEqNatS vuz3100 vuz4900)",fontsize=16,color="burlywood",shape="box"];1195[label="vuz3100/Succ vuz31000",fontsize=10,color="white",style="solid",shape="box"];465 -> 1195[label="",style="solid", color="burlywood", weight=9]; 1195 -> 479[label="",style="solid", color="burlywood", weight=3]; 1196[label="vuz3100/Zero",fontsize=10,color="white",style="solid",shape="box"];465 -> 1196[label="",style="solid", color="burlywood", weight=9]; 1196 -> 480[label="",style="solid", color="burlywood", weight=3]; 466[label="Zero",fontsize=16,color="green",shape="box"];303[label="primQuotInt (Neg vuz310) (gcd0Gcd'2 (abs vuz33) (abs vuz32))",fontsize=16,color="black",shape="box"];303 -> 313[label="",style="solid", color="black", weight=3]; 304[label="vuz32",fontsize=16,color="green",shape="box"];305[label="primQuotInt (Neg vuz310) (gcd1 False vuz33 vuz32)",fontsize=16,color="black",shape="box"];305 -> 314[label="",style="solid", color="black", weight=3]; 306[label="primQuotInt (Neg vuz310) (gcd1 True vuz33 vuz32)",fontsize=16,color="black",shape="box"];306 -> 315[label="",style="solid", color="black", weight=3]; 452 -> 481[label="",style="dashed", color="red", weight=0]; 452[label="gcd0Gcd'1 (abs vuz29 == fromInt (Pos Zero)) (abs vuz30) (abs vuz29)",fontsize=16,color="magenta"];452 -> 482[label="",style="dashed", color="magenta", weight=3]; 453 -> 396[label="",style="dashed", color="red", weight=0]; 453[label="gcd0 vuz30 vuz29",fontsize=16,color="magenta"];454[label="error []",fontsize=16,color="black",shape="box"];454 -> 483[label="",style="solid", color="black", weight=3]; 467 -> 439[label="",style="dashed", color="red", weight=0]; 467[label="primDivNatS vuz2800 (Succ vuz45000)",fontsize=16,color="magenta"];467 -> 484[label="",style="dashed", color="magenta", weight=3]; 467 -> 485[label="",style="dashed", color="magenta", weight=3]; 468 -> 439[label="",style="dashed", color="red", weight=0]; 468[label="primDivNatS vuz2800 (Succ vuz45000)",fontsize=16,color="magenta"];468 -> 486[label="",style="dashed", color="magenta", weight=3]; 468 -> 487[label="",style="dashed", color="magenta", weight=3]; 469 -> 439[label="",style="dashed", color="red", weight=0]; 469[label="primDivNatS vuz2800 (Succ vuz45000)",fontsize=16,color="magenta"];469 -> 488[label="",style="dashed", color="magenta", weight=3]; 469 -> 489[label="",style="dashed", color="magenta", weight=3]; 470 -> 439[label="",style="dashed", color="red", weight=0]; 470[label="primDivNatS vuz2800 (Succ vuz45000)",fontsize=16,color="magenta"];470 -> 490[label="",style="dashed", color="magenta", weight=3]; 470 -> 491[label="",style="dashed", color="magenta", weight=3]; 472 -> 328[label="",style="dashed", color="red", weight=0]; 472[label="abs vuz32",fontsize=16,color="magenta"];473 -> 328[label="",style="dashed", color="red", weight=0]; 473[label="abs vuz33",fontsize=16,color="magenta"];473 -> 492[label="",style="dashed", color="magenta", weight=3]; 471[label="gcd0Gcd' vuz56 vuz55",fontsize=16,color="black",shape="triangle"];471 -> 493[label="",style="solid", color="black", weight=3]; 476[label="vuz32",fontsize=16,color="green",shape="box"];477[label="gcd1 False vuz33 vuz32",fontsize=16,color="black",shape="box"];477 -> 494[label="",style="solid", color="black", weight=3]; 478[label="gcd1 True vuz33 vuz32",fontsize=16,color="black",shape="box"];478 -> 495[label="",style="solid", color="black", weight=3]; 479[label="primDivNatS0 (Succ vuz31000) vuz4900 (primGEqNatS (Succ vuz31000) vuz4900)",fontsize=16,color="burlywood",shape="box"];1197[label="vuz4900/Succ vuz49000",fontsize=10,color="white",style="solid",shape="box"];479 -> 1197[label="",style="solid", color="burlywood", weight=9]; 1197 -> 496[label="",style="solid", color="burlywood", weight=3]; 1198[label="vuz4900/Zero",fontsize=10,color="white",style="solid",shape="box"];479 -> 1198[label="",style="solid", color="burlywood", weight=9]; 1198 -> 497[label="",style="solid", color="burlywood", weight=3]; 480[label="primDivNatS0 Zero vuz4900 (primGEqNatS Zero vuz4900)",fontsize=16,color="burlywood",shape="box"];1199[label="vuz4900/Succ vuz49000",fontsize=10,color="white",style="solid",shape="box"];480 -> 1199[label="",style="solid", color="burlywood", weight=9]; 1199 -> 498[label="",style="solid", color="burlywood", weight=3]; 1200[label="vuz4900/Zero",fontsize=10,color="white",style="solid",shape="box"];480 -> 1200[label="",style="solid", color="burlywood", weight=9]; 1200 -> 499[label="",style="solid", color="burlywood", weight=3]; 313 -> 322[label="",style="dashed", color="red", weight=0]; 313[label="primQuotInt (Neg vuz310) (gcd0Gcd'1 (abs vuz32 == fromInt (Pos Zero)) (abs vuz33) (abs vuz32))",fontsize=16,color="magenta"];313 -> 323[label="",style="dashed", color="magenta", weight=3]; 314 -> 284[label="",style="dashed", color="red", weight=0]; 314[label="primQuotInt (Neg vuz310) (gcd0 vuz33 vuz32)",fontsize=16,color="magenta"];315[label="primQuotInt (Neg vuz310) (error [])",fontsize=16,color="black",shape="box"];315 -> 324[label="",style="solid", color="black", weight=3]; 482 -> 144[label="",style="dashed", color="red", weight=0]; 482[label="abs vuz29 == fromInt (Pos Zero)",fontsize=16,color="magenta"];482 -> 500[label="",style="dashed", color="magenta", weight=3]; 481[label="gcd0Gcd'1 vuz57 (abs vuz30) (abs vuz29)",fontsize=16,color="burlywood",shape="triangle"];1201[label="vuz57/False",fontsize=10,color="white",style="solid",shape="box"];481 -> 1201[label="",style="solid", color="burlywood", weight=9]; 1201 -> 501[label="",style="solid", color="burlywood", weight=3]; 1202[label="vuz57/True",fontsize=10,color="white",style="solid",shape="box"];481 -> 1202[label="",style="solid", color="burlywood", weight=9]; 1202 -> 502[label="",style="solid", color="burlywood", weight=3]; 483[label="error []",fontsize=16,color="red",shape="box"];484[label="vuz2800",fontsize=16,color="green",shape="box"];485[label="vuz45000",fontsize=16,color="green",shape="box"];486[label="vuz2800",fontsize=16,color="green",shape="box"];487[label="vuz45000",fontsize=16,color="green",shape="box"];488[label="vuz2800",fontsize=16,color="green",shape="box"];489[label="vuz45000",fontsize=16,color="green",shape="box"];490[label="vuz2800",fontsize=16,color="green",shape="box"];491[label="vuz45000",fontsize=16,color="green",shape="box"];328[label="abs vuz32",fontsize=16,color="black",shape="triangle"];328 -> 357[label="",style="solid", color="black", weight=3]; 492[label="vuz33",fontsize=16,color="green",shape="box"];493[label="gcd0Gcd'2 vuz56 vuz55",fontsize=16,color="black",shape="box"];493 -> 505[label="",style="solid", color="black", weight=3]; 494 -> 442[label="",style="dashed", color="red", weight=0]; 494[label="gcd0 vuz33 vuz32",fontsize=16,color="magenta"];495 -> 418[label="",style="dashed", color="red", weight=0]; 495[label="error []",fontsize=16,color="magenta"];496[label="primDivNatS0 (Succ vuz31000) (Succ vuz49000) (primGEqNatS (Succ vuz31000) (Succ vuz49000))",fontsize=16,color="black",shape="box"];496 -> 506[label="",style="solid", color="black", weight=3]; 497[label="primDivNatS0 (Succ vuz31000) Zero (primGEqNatS (Succ vuz31000) Zero)",fontsize=16,color="black",shape="box"];497 -> 507[label="",style="solid", color="black", weight=3]; 498[label="primDivNatS0 Zero (Succ vuz49000) (primGEqNatS Zero (Succ vuz49000))",fontsize=16,color="black",shape="box"];498 -> 508[label="",style="solid", color="black", weight=3]; 499[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];499 -> 509[label="",style="solid", color="black", weight=3]; 323 -> 142[label="",style="dashed", color="red", weight=0]; 323[label="abs vuz32 == fromInt (Pos Zero)",fontsize=16,color="magenta"];323 -> 331[label="",style="dashed", color="magenta", weight=3]; 322[label="primQuotInt (Neg vuz310) (gcd0Gcd'1 vuz42 (abs vuz33) (abs vuz32))",fontsize=16,color="burlywood",shape="triangle"];1203[label="vuz42/False",fontsize=10,color="white",style="solid",shape="box"];322 -> 1203[label="",style="solid", color="burlywood", weight=9]; 1203 -> 332[label="",style="solid", color="burlywood", weight=3]; 1204[label="vuz42/True",fontsize=10,color="white",style="solid",shape="box"];322 -> 1204[label="",style="solid", color="burlywood", weight=9]; 1204 -> 333[label="",style="solid", color="burlywood", weight=3]; 324[label="error []",fontsize=16,color="red",shape="box"];500[label="abs vuz29",fontsize=16,color="black",shape="triangle"];500 -> 510[label="",style="solid", color="black", weight=3]; 501[label="gcd0Gcd'1 False (abs vuz30) (abs vuz29)",fontsize=16,color="black",shape="box"];501 -> 511[label="",style="solid", color="black", weight=3]; 502[label="gcd0Gcd'1 True (abs vuz30) (abs vuz29)",fontsize=16,color="black",shape="box"];502 -> 512[label="",style="solid", color="black", weight=3]; 357[label="absReal vuz32",fontsize=16,color="black",shape="box"];357 -> 364[label="",style="solid", color="black", weight=3]; 505 -> 516[label="",style="dashed", color="red", weight=0]; 505[label="gcd0Gcd'1 (vuz55 == fromInt (Pos Zero)) vuz56 vuz55",fontsize=16,color="magenta"];505 -> 517[label="",style="dashed", color="magenta", weight=3]; 506 -> 853[label="",style="dashed", color="red", weight=0]; 506[label="primDivNatS0 (Succ vuz31000) (Succ vuz49000) (primGEqNatS vuz31000 vuz49000)",fontsize=16,color="magenta"];506 -> 854[label="",style="dashed", color="magenta", weight=3]; 506 -> 855[label="",style="dashed", color="magenta", weight=3]; 506 -> 856[label="",style="dashed", color="magenta", weight=3]; 506 -> 857[label="",style="dashed", color="magenta", weight=3]; 507[label="primDivNatS0 (Succ vuz31000) Zero True",fontsize=16,color="black",shape="box"];507 -> 520[label="",style="solid", color="black", weight=3]; 508[label="primDivNatS0 Zero (Succ vuz49000) False",fontsize=16,color="black",shape="box"];508 -> 521[label="",style="solid", color="black", weight=3]; 509[label="primDivNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];509 -> 522[label="",style="solid", color="black", weight=3]; 331 -> 328[label="",style="dashed", color="red", weight=0]; 331[label="abs vuz32",fontsize=16,color="magenta"];332[label="primQuotInt (Neg vuz310) (gcd0Gcd'1 False (abs vuz33) (abs vuz32))",fontsize=16,color="black",shape="box"];332 -> 360[label="",style="solid", color="black", weight=3]; 333[label="primQuotInt (Neg vuz310) (gcd0Gcd'1 True (abs vuz33) (abs vuz32))",fontsize=16,color="black",shape="box"];333 -> 361[label="",style="solid", color="black", weight=3]; 510[label="absReal vuz29",fontsize=16,color="black",shape="box"];510 -> 523[label="",style="solid", color="black", weight=3]; 511 -> 524[label="",style="dashed", color="red", weight=0]; 511[label="gcd0Gcd'0 (abs vuz30) (abs vuz29)",fontsize=16,color="magenta"];511 -> 525[label="",style="dashed", color="magenta", weight=3]; 511 -> 526[label="",style="dashed", color="magenta", weight=3]; 512 -> 500[label="",style="dashed", color="red", weight=0]; 512[label="abs vuz30",fontsize=16,color="magenta"];512 -> 527[label="",style="dashed", color="magenta", weight=3]; 364[label="absReal2 vuz32",fontsize=16,color="black",shape="box"];364 -> 402[label="",style="solid", color="black", weight=3]; 517 -> 142[label="",style="dashed", color="red", weight=0]; 517[label="vuz55 == fromInt (Pos Zero)",fontsize=16,color="magenta"];517 -> 528[label="",style="dashed", color="magenta", weight=3]; 516[label="gcd0Gcd'1 vuz58 vuz56 vuz55",fontsize=16,color="burlywood",shape="triangle"];1205[label="vuz58/False",fontsize=10,color="white",style="solid",shape="box"];516 -> 1205[label="",style="solid", color="burlywood", weight=9]; 1205 -> 529[label="",style="solid", color="burlywood", weight=3]; 1206[label="vuz58/True",fontsize=10,color="white",style="solid",shape="box"];516 -> 1206[label="",style="solid", color="burlywood", weight=9]; 1206 -> 530[label="",style="solid", color="burlywood", weight=3]; 854[label="vuz49000",fontsize=16,color="green",shape="box"];855[label="vuz31000",fontsize=16,color="green",shape="box"];856[label="vuz31000",fontsize=16,color="green",shape="box"];857[label="vuz49000",fontsize=16,color="green",shape="box"];853[label="primDivNatS0 (Succ vuz78) (Succ vuz79) (primGEqNatS vuz80 vuz81)",fontsize=16,color="burlywood",shape="triangle"];1207[label="vuz80/Succ vuz800",fontsize=10,color="white",style="solid",shape="box"];853 -> 1207[label="",style="solid", color="burlywood", weight=9]; 1207 -> 886[label="",style="solid", color="burlywood", weight=3]; 1208[label="vuz80/Zero",fontsize=10,color="white",style="solid",shape="box"];853 -> 1208[label="",style="solid", color="burlywood", weight=9]; 1208 -> 887[label="",style="solid", color="burlywood", weight=3]; 520[label="Succ (primDivNatS (primMinusNatS (Succ vuz31000) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];520 -> 535[label="",style="dashed", color="green", weight=3]; 521[label="Zero",fontsize=16,color="green",shape="box"];522[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];522 -> 536[label="",style="dashed", color="green", weight=3]; 360 -> 370[label="",style="dashed", color="red", weight=0]; 360[label="primQuotInt (Neg vuz310) (gcd0Gcd'0 (abs vuz33) (abs vuz32))",fontsize=16,color="magenta"];360 -> 398[label="",style="dashed", color="magenta", weight=3]; 360 -> 399[label="",style="dashed", color="magenta", weight=3]; 361 -> 370[label="",style="dashed", color="red", weight=0]; 361[label="primQuotInt (Neg vuz310) (abs vuz33)",fontsize=16,color="magenta"];361 -> 400[label="",style="dashed", color="magenta", weight=3]; 361 -> 401[label="",style="dashed", color="magenta", weight=3]; 523[label="absReal2 vuz29",fontsize=16,color="black",shape="box"];523 -> 537[label="",style="solid", color="black", weight=3]; 525 -> 500[label="",style="dashed", color="red", weight=0]; 525[label="abs vuz30",fontsize=16,color="magenta"];525 -> 538[label="",style="dashed", color="magenta", weight=3]; 526 -> 500[label="",style="dashed", color="red", weight=0]; 526[label="abs vuz29",fontsize=16,color="magenta"];524[label="gcd0Gcd'0 vuz60 vuz59",fontsize=16,color="black",shape="triangle"];524 -> 539[label="",style="solid", color="black", weight=3]; 527[label="vuz30",fontsize=16,color="green",shape="box"];402[label="absReal1 vuz32 (vuz32 >= fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];402 -> 458[label="",style="solid", color="black", weight=3]; 528[label="vuz55",fontsize=16,color="green",shape="box"];529[label="gcd0Gcd'1 False vuz56 vuz55",fontsize=16,color="black",shape="box"];529 -> 546[label="",style="solid", color="black", weight=3]; 530[label="gcd0Gcd'1 True vuz56 vuz55",fontsize=16,color="black",shape="box"];530 -> 547[label="",style="solid", color="black", weight=3]; 886[label="primDivNatS0 (Succ vuz78) (Succ vuz79) (primGEqNatS (Succ vuz800) vuz81)",fontsize=16,color="burlywood",shape="box"];1209[label="vuz81/Succ vuz810",fontsize=10,color="white",style="solid",shape="box"];886 -> 1209[label="",style="solid", color="burlywood", weight=9]; 1209 -> 894[label="",style="solid", color="burlywood", weight=3]; 1210[label="vuz81/Zero",fontsize=10,color="white",style="solid",shape="box"];886 -> 1210[label="",style="solid", color="burlywood", weight=9]; 1210 -> 895[label="",style="solid", color="burlywood", weight=3]; 887[label="primDivNatS0 (Succ vuz78) (Succ vuz79) (primGEqNatS Zero vuz81)",fontsize=16,color="burlywood",shape="box"];1211[label="vuz81/Succ vuz810",fontsize=10,color="white",style="solid",shape="box"];887 -> 1211[label="",style="solid", color="burlywood", weight=9]; 1211 -> 896[label="",style="solid", color="burlywood", weight=3]; 1212[label="vuz81/Zero",fontsize=10,color="white",style="solid",shape="box"];887 -> 1212[label="",style="solid", color="burlywood", weight=9]; 1212 -> 897[label="",style="solid", color="burlywood", weight=3]; 535 -> 439[label="",style="dashed", color="red", weight=0]; 535[label="primDivNatS (primMinusNatS (Succ vuz31000) Zero) (Succ Zero)",fontsize=16,color="magenta"];535 -> 552[label="",style="dashed", color="magenta", weight=3]; 535 -> 553[label="",style="dashed", color="magenta", weight=3]; 536 -> 439[label="",style="dashed", color="red", weight=0]; 536[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];536 -> 554[label="",style="dashed", color="magenta", weight=3]; 536 -> 555[label="",style="dashed", color="magenta", weight=3]; 398[label="Neg vuz310",fontsize=16,color="green",shape="box"];399 -> 436[label="",style="dashed", color="red", weight=0]; 399[label="gcd0Gcd'0 (abs vuz33) (abs vuz32)",fontsize=16,color="magenta"];399 -> 437[label="",style="dashed", color="magenta", weight=3]; 399 -> 438[label="",style="dashed", color="magenta", weight=3]; 400[label="Neg vuz310",fontsize=16,color="green",shape="box"];401 -> 328[label="",style="dashed", color="red", weight=0]; 401[label="abs vuz33",fontsize=16,color="magenta"];401 -> 455[label="",style="dashed", color="magenta", weight=3]; 537[label="absReal1 vuz29 (vuz29 >= fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];537 -> 556[label="",style="solid", color="black", weight=3]; 538[label="vuz30",fontsize=16,color="green",shape="box"];539[label="gcd0Gcd' vuz59 (vuz60 `rem` vuz59)",fontsize=16,color="black",shape="box"];539 -> 557[label="",style="solid", color="black", weight=3]; 458[label="absReal1 vuz32 (compare vuz32 (fromInt (Pos Zero)) /= LT)",fontsize=16,color="black",shape="box"];458 -> 503[label="",style="solid", color="black", weight=3]; 546 -> 436[label="",style="dashed", color="red", weight=0]; 546[label="gcd0Gcd'0 vuz56 vuz55",fontsize=16,color="magenta"];546 -> 570[label="",style="dashed", color="magenta", weight=3]; 546 -> 571[label="",style="dashed", color="magenta", weight=3]; 547[label="vuz56",fontsize=16,color="green",shape="box"];894[label="primDivNatS0 (Succ vuz78) (Succ vuz79) (primGEqNatS (Succ vuz800) (Succ vuz810))",fontsize=16,color="black",shape="box"];894 -> 906[label="",style="solid", color="black", weight=3]; 895[label="primDivNatS0 (Succ vuz78) (Succ vuz79) (primGEqNatS (Succ vuz800) Zero)",fontsize=16,color="black",shape="box"];895 -> 907[label="",style="solid", color="black", weight=3]; 896[label="primDivNatS0 (Succ vuz78) (Succ vuz79) (primGEqNatS Zero (Succ vuz810))",fontsize=16,color="black",shape="box"];896 -> 908[label="",style="solid", color="black", weight=3]; 897[label="primDivNatS0 (Succ vuz78) (Succ vuz79) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];897 -> 909[label="",style="solid", color="black", weight=3]; 552[label="primMinusNatS (Succ vuz31000) Zero",fontsize=16,color="black",shape="triangle"];552 -> 577[label="",style="solid", color="black", weight=3]; 553[label="Zero",fontsize=16,color="green",shape="box"];554[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="triangle"];554 -> 578[label="",style="solid", color="black", weight=3]; 555[label="Zero",fontsize=16,color="green",shape="box"];437 -> 328[label="",style="dashed", color="red", weight=0]; 437[label="abs vuz33",fontsize=16,color="magenta"];437 -> 456[label="",style="dashed", color="magenta", weight=3]; 438 -> 328[label="",style="dashed", color="red", weight=0]; 438[label="abs vuz32",fontsize=16,color="magenta"];436[label="gcd0Gcd'0 vuz53 vuz52",fontsize=16,color="black",shape="triangle"];436 -> 457[label="",style="solid", color="black", weight=3]; 455[label="vuz33",fontsize=16,color="green",shape="box"];556[label="absReal1 vuz29 (compare vuz29 (fromInt (Pos Zero)) /= LT)",fontsize=16,color="black",shape="box"];556 -> 579[label="",style="solid", color="black", weight=3]; 557[label="gcd0Gcd'2 vuz59 (vuz60 `rem` vuz59)",fontsize=16,color="black",shape="box"];557 -> 580[label="",style="solid", color="black", weight=3]; 503[label="absReal1 vuz32 (not (compare vuz32 (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];503 -> 513[label="",style="solid", color="black", weight=3]; 570[label="vuz56",fontsize=16,color="green",shape="box"];571[label="vuz55",fontsize=16,color="green",shape="box"];906 -> 853[label="",style="dashed", color="red", weight=0]; 906[label="primDivNatS0 (Succ vuz78) (Succ vuz79) (primGEqNatS vuz800 vuz810)",fontsize=16,color="magenta"];906 -> 916[label="",style="dashed", color="magenta", weight=3]; 906 -> 917[label="",style="dashed", color="magenta", weight=3]; 907[label="primDivNatS0 (Succ vuz78) (Succ vuz79) True",fontsize=16,color="black",shape="triangle"];907 -> 918[label="",style="solid", color="black", weight=3]; 908[label="primDivNatS0 (Succ vuz78) (Succ vuz79) False",fontsize=16,color="black",shape="box"];908 -> 919[label="",style="solid", color="black", weight=3]; 909 -> 907[label="",style="dashed", color="red", weight=0]; 909[label="primDivNatS0 (Succ vuz78) (Succ vuz79) True",fontsize=16,color="magenta"];577[label="Succ vuz31000",fontsize=16,color="green",shape="box"];578[label="Zero",fontsize=16,color="green",shape="box"];456[label="vuz33",fontsize=16,color="green",shape="box"];457 -> 471[label="",style="dashed", color="red", weight=0]; 457[label="gcd0Gcd' vuz52 (vuz53 `rem` vuz52)",fontsize=16,color="magenta"];457 -> 474[label="",style="dashed", color="magenta", weight=3]; 457 -> 475[label="",style="dashed", color="magenta", weight=3]; 579[label="absReal1 vuz29 (not (compare vuz29 (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];1213[label="vuz29/Integer vuz290",fontsize=10,color="white",style="solid",shape="box"];579 -> 1213[label="",style="solid", color="burlywood", weight=9]; 1213 -> 599[label="",style="solid", color="burlywood", weight=3]; 580 -> 600[label="",style="dashed", color="red", weight=0]; 580[label="gcd0Gcd'1 (vuz60 `rem` vuz59 == fromInt (Pos Zero)) vuz59 (vuz60 `rem` vuz59)",fontsize=16,color="magenta"];580 -> 601[label="",style="dashed", color="magenta", weight=3]; 513[label="absReal1 vuz32 (not (primCmpInt vuz32 (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];1214[label="vuz32/Pos vuz320",fontsize=10,color="white",style="solid",shape="box"];513 -> 1214[label="",style="solid", color="burlywood", weight=9]; 1214 -> 540[label="",style="solid", color="burlywood", weight=3]; 1215[label="vuz32/Neg vuz320",fontsize=10,color="white",style="solid",shape="box"];513 -> 1215[label="",style="solid", color="burlywood", weight=9]; 1215 -> 541[label="",style="solid", color="burlywood", weight=3]; 916[label="vuz800",fontsize=16,color="green",shape="box"];917[label="vuz810",fontsize=16,color="green",shape="box"];918[label="Succ (primDivNatS (primMinusNatS (Succ vuz78) (Succ vuz79)) (Succ (Succ vuz79)))",fontsize=16,color="green",shape="box"];918 -> 926[label="",style="dashed", color="green", weight=3]; 919[label="Zero",fontsize=16,color="green",shape="box"];474[label="vuz53 `rem` vuz52",fontsize=16,color="black",shape="box"];474 -> 504[label="",style="solid", color="black", weight=3]; 475[label="vuz52",fontsize=16,color="green",shape="box"];599[label="absReal1 (Integer vuz290) (not (compare (Integer vuz290) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];599 -> 610[label="",style="solid", color="black", weight=3]; 601 -> 144[label="",style="dashed", color="red", weight=0]; 601[label="vuz60 `rem` vuz59 == fromInt (Pos Zero)",fontsize=16,color="magenta"];601 -> 611[label="",style="dashed", color="magenta", weight=3]; 600[label="gcd0Gcd'1 vuz61 vuz59 (vuz60 `rem` vuz59)",fontsize=16,color="burlywood",shape="triangle"];1216[label="vuz61/False",fontsize=10,color="white",style="solid",shape="box"];600 -> 1216[label="",style="solid", color="burlywood", weight=9]; 1216 -> 612[label="",style="solid", color="burlywood", weight=3]; 1217[label="vuz61/True",fontsize=10,color="white",style="solid",shape="box"];600 -> 1217[label="",style="solid", color="burlywood", weight=9]; 1217 -> 613[label="",style="solid", color="burlywood", weight=3]; 540[label="absReal1 (Pos vuz320) (not (primCmpInt (Pos vuz320) (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];1218[label="vuz320/Succ vuz3200",fontsize=10,color="white",style="solid",shape="box"];540 -> 1218[label="",style="solid", color="burlywood", weight=9]; 1218 -> 558[label="",style="solid", color="burlywood", weight=3]; 1219[label="vuz320/Zero",fontsize=10,color="white",style="solid",shape="box"];540 -> 1219[label="",style="solid", color="burlywood", weight=9]; 1219 -> 559[label="",style="solid", color="burlywood", weight=3]; 541[label="absReal1 (Neg vuz320) (not (primCmpInt (Neg vuz320) (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];1220[label="vuz320/Succ vuz3200",fontsize=10,color="white",style="solid",shape="box"];541 -> 1220[label="",style="solid", color="burlywood", weight=9]; 1220 -> 560[label="",style="solid", color="burlywood", weight=3]; 1221[label="vuz320/Zero",fontsize=10,color="white",style="solid",shape="box"];541 -> 1221[label="",style="solid", color="burlywood", weight=9]; 1221 -> 561[label="",style="solid", color="burlywood", weight=3]; 926 -> 439[label="",style="dashed", color="red", weight=0]; 926[label="primDivNatS (primMinusNatS (Succ vuz78) (Succ vuz79)) (Succ (Succ vuz79))",fontsize=16,color="magenta"];926 -> 935[label="",style="dashed", color="magenta", weight=3]; 926 -> 936[label="",style="dashed", color="magenta", weight=3]; 504[label="primRemInt vuz53 vuz52",fontsize=16,color="burlywood",shape="triangle"];1222[label="vuz53/Pos vuz530",fontsize=10,color="white",style="solid",shape="box"];504 -> 1222[label="",style="solid", color="burlywood", weight=9]; 1222 -> 514[label="",style="solid", color="burlywood", weight=3]; 1223[label="vuz53/Neg vuz530",fontsize=10,color="white",style="solid",shape="box"];504 -> 1223[label="",style="solid", color="burlywood", weight=9]; 1223 -> 515[label="",style="solid", color="burlywood", weight=3]; 610[label="absReal1 (Integer vuz290) (not (compare (Integer vuz290) (Integer (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];610 -> 629[label="",style="solid", color="black", weight=3]; 611[label="vuz60 `rem` vuz59",fontsize=16,color="burlywood",shape="triangle"];1224[label="vuz60/Integer vuz600",fontsize=10,color="white",style="solid",shape="box"];611 -> 1224[label="",style="solid", color="burlywood", weight=9]; 1224 -> 630[label="",style="solid", color="burlywood", weight=3]; 612[label="gcd0Gcd'1 False vuz59 (vuz60 `rem` vuz59)",fontsize=16,color="black",shape="box"];612 -> 631[label="",style="solid", color="black", weight=3]; 613[label="gcd0Gcd'1 True vuz59 (vuz60 `rem` vuz59)",fontsize=16,color="black",shape="box"];613 -> 632[label="",style="solid", color="black", weight=3]; 558[label="absReal1 (Pos (Succ vuz3200)) (not (primCmpInt (Pos (Succ vuz3200)) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];558 -> 581[label="",style="solid", color="black", weight=3]; 559[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];559 -> 582[label="",style="solid", color="black", weight=3]; 560[label="absReal1 (Neg (Succ vuz3200)) (not (primCmpInt (Neg (Succ vuz3200)) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];560 -> 583[label="",style="solid", color="black", weight=3]; 561[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];561 -> 584[label="",style="solid", color="black", weight=3]; 935[label="primMinusNatS (Succ vuz78) (Succ vuz79)",fontsize=16,color="black",shape="triangle"];935 -> 943[label="",style="solid", color="black", weight=3]; 936[label="Succ vuz79",fontsize=16,color="green",shape="box"];514[label="primRemInt (Pos vuz530) vuz52",fontsize=16,color="burlywood",shape="box"];1225[label="vuz52/Pos vuz520",fontsize=10,color="white",style="solid",shape="box"];514 -> 1225[label="",style="solid", color="burlywood", weight=9]; 1225 -> 542[label="",style="solid", color="burlywood", weight=3]; 1226[label="vuz52/Neg vuz520",fontsize=10,color="white",style="solid",shape="box"];514 -> 1226[label="",style="solid", color="burlywood", weight=9]; 1226 -> 543[label="",style="solid", color="burlywood", weight=3]; 515[label="primRemInt (Neg vuz530) vuz52",fontsize=16,color="burlywood",shape="box"];1227[label="vuz52/Pos vuz520",fontsize=10,color="white",style="solid",shape="box"];515 -> 1227[label="",style="solid", color="burlywood", weight=9]; 1227 -> 544[label="",style="solid", color="burlywood", weight=3]; 1228[label="vuz52/Neg vuz520",fontsize=10,color="white",style="solid",shape="box"];515 -> 1228[label="",style="solid", color="burlywood", weight=9]; 1228 -> 545[label="",style="solid", color="burlywood", weight=3]; 629[label="absReal1 (Integer vuz290) (not (primCmpInt vuz290 (Pos Zero) == LT))",fontsize=16,color="burlywood",shape="box"];1229[label="vuz290/Pos vuz2900",fontsize=10,color="white",style="solid",shape="box"];629 -> 1229[label="",style="solid", color="burlywood", weight=9]; 1229 -> 650[label="",style="solid", color="burlywood", weight=3]; 1230[label="vuz290/Neg vuz2900",fontsize=10,color="white",style="solid",shape="box"];629 -> 1230[label="",style="solid", color="burlywood", weight=9]; 1230 -> 651[label="",style="solid", color="burlywood", weight=3]; 630[label="Integer vuz600 `rem` vuz59",fontsize=16,color="burlywood",shape="box"];1231[label="vuz59/Integer vuz590",fontsize=10,color="white",style="solid",shape="box"];630 -> 1231[label="",style="solid", color="burlywood", weight=9]; 1231 -> 652[label="",style="solid", color="burlywood", weight=3]; 631 -> 524[label="",style="dashed", color="red", weight=0]; 631[label="gcd0Gcd'0 vuz59 (vuz60 `rem` vuz59)",fontsize=16,color="magenta"];631 -> 653[label="",style="dashed", color="magenta", weight=3]; 631 -> 654[label="",style="dashed", color="magenta", weight=3]; 632[label="vuz59",fontsize=16,color="green",shape="box"];581[label="absReal1 (Pos (Succ vuz3200)) (not (primCmpInt (Pos (Succ vuz3200)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];581 -> 614[label="",style="solid", color="black", weight=3]; 582[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];582 -> 615[label="",style="solid", color="black", weight=3]; 583[label="absReal1 (Neg (Succ vuz3200)) (not (primCmpInt (Neg (Succ vuz3200)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];583 -> 616[label="",style="solid", color="black", weight=3]; 584[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];584 -> 617[label="",style="solid", color="black", weight=3]; 943[label="primMinusNatS vuz78 vuz79",fontsize=16,color="burlywood",shape="triangle"];1232[label="vuz78/Succ vuz780",fontsize=10,color="white",style="solid",shape="box"];943 -> 1232[label="",style="solid", color="burlywood", weight=9]; 1232 -> 953[label="",style="solid", color="burlywood", weight=3]; 1233[label="vuz78/Zero",fontsize=10,color="white",style="solid",shape="box"];943 -> 1233[label="",style="solid", color="burlywood", weight=9]; 1233 -> 954[label="",style="solid", color="burlywood", weight=3]; 542[label="primRemInt (Pos vuz530) (Pos vuz520)",fontsize=16,color="burlywood",shape="box"];1234[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];542 -> 1234[label="",style="solid", color="burlywood", weight=9]; 1234 -> 562[label="",style="solid", color="burlywood", weight=3]; 1235[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];542 -> 1235[label="",style="solid", color="burlywood", weight=9]; 1235 -> 563[label="",style="solid", color="burlywood", weight=3]; 543[label="primRemInt (Pos vuz530) (Neg vuz520)",fontsize=16,color="burlywood",shape="box"];1236[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];543 -> 1236[label="",style="solid", color="burlywood", weight=9]; 1236 -> 564[label="",style="solid", color="burlywood", weight=3]; 1237[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];543 -> 1237[label="",style="solid", color="burlywood", weight=9]; 1237 -> 565[label="",style="solid", color="burlywood", weight=3]; 544[label="primRemInt (Neg vuz530) (Pos vuz520)",fontsize=16,color="burlywood",shape="box"];1238[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];544 -> 1238[label="",style="solid", color="burlywood", weight=9]; 1238 -> 566[label="",style="solid", color="burlywood", weight=3]; 1239[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];544 -> 1239[label="",style="solid", color="burlywood", weight=9]; 1239 -> 567[label="",style="solid", color="burlywood", weight=3]; 545[label="primRemInt (Neg vuz530) (Neg vuz520)",fontsize=16,color="burlywood",shape="box"];1240[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];545 -> 1240[label="",style="solid", color="burlywood", weight=9]; 1240 -> 568[label="",style="solid", color="burlywood", weight=3]; 1241[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];545 -> 1241[label="",style="solid", color="burlywood", weight=9]; 1241 -> 569[label="",style="solid", color="burlywood", weight=3]; 650[label="absReal1 (Integer (Pos vuz2900)) (not (primCmpInt (Pos vuz2900) (Pos Zero) == LT))",fontsize=16,color="burlywood",shape="box"];1242[label="vuz2900/Succ vuz29000",fontsize=10,color="white",style="solid",shape="box"];650 -> 1242[label="",style="solid", color="burlywood", weight=9]; 1242 -> 669[label="",style="solid", color="burlywood", weight=3]; 1243[label="vuz2900/Zero",fontsize=10,color="white",style="solid",shape="box"];650 -> 1243[label="",style="solid", color="burlywood", weight=9]; 1243 -> 670[label="",style="solid", color="burlywood", weight=3]; 651[label="absReal1 (Integer (Neg vuz2900)) (not (primCmpInt (Neg vuz2900) (Pos Zero) == LT))",fontsize=16,color="burlywood",shape="box"];1244[label="vuz2900/Succ vuz29000",fontsize=10,color="white",style="solid",shape="box"];651 -> 1244[label="",style="solid", color="burlywood", weight=9]; 1244 -> 671[label="",style="solid", color="burlywood", weight=3]; 1245[label="vuz2900/Zero",fontsize=10,color="white",style="solid",shape="box"];651 -> 1245[label="",style="solid", color="burlywood", weight=9]; 1245 -> 672[label="",style="solid", color="burlywood", weight=3]; 652[label="Integer vuz600 `rem` Integer vuz590",fontsize=16,color="black",shape="box"];652 -> 673[label="",style="solid", color="black", weight=3]; 653[label="vuz59",fontsize=16,color="green",shape="box"];654 -> 611[label="",style="dashed", color="red", weight=0]; 654[label="vuz60 `rem` vuz59",fontsize=16,color="magenta"];614[label="absReal1 (Pos (Succ vuz3200)) (not (primCmpNat (Succ vuz3200) Zero == LT))",fontsize=16,color="black",shape="box"];614 -> 633[label="",style="solid", color="black", weight=3]; 615[label="absReal1 (Pos Zero) (not (EQ == LT))",fontsize=16,color="black",shape="box"];615 -> 634[label="",style="solid", color="black", weight=3]; 616[label="absReal1 (Neg (Succ vuz3200)) (not (LT == LT))",fontsize=16,color="black",shape="box"];616 -> 635[label="",style="solid", color="black", weight=3]; 617[label="absReal1 (Neg Zero) (not (EQ == LT))",fontsize=16,color="black",shape="box"];617 -> 636[label="",style="solid", color="black", weight=3]; 953[label="primMinusNatS (Succ vuz780) vuz79",fontsize=16,color="burlywood",shape="box"];1246[label="vuz79/Succ vuz790",fontsize=10,color="white",style="solid",shape="box"];953 -> 1246[label="",style="solid", color="burlywood", weight=9]; 1246 -> 963[label="",style="solid", color="burlywood", weight=3]; 1247[label="vuz79/Zero",fontsize=10,color="white",style="solid",shape="box"];953 -> 1247[label="",style="solid", color="burlywood", weight=9]; 1247 -> 964[label="",style="solid", color="burlywood", weight=3]; 954[label="primMinusNatS Zero vuz79",fontsize=16,color="burlywood",shape="box"];1248[label="vuz79/Succ vuz790",fontsize=10,color="white",style="solid",shape="box"];954 -> 1248[label="",style="solid", color="burlywood", weight=9]; 1248 -> 965[label="",style="solid", color="burlywood", weight=3]; 1249[label="vuz79/Zero",fontsize=10,color="white",style="solid",shape="box"];954 -> 1249[label="",style="solid", color="burlywood", weight=9]; 1249 -> 966[label="",style="solid", color="burlywood", weight=3]; 562[label="primRemInt (Pos vuz530) (Pos (Succ vuz5200))",fontsize=16,color="black",shape="box"];562 -> 585[label="",style="solid", color="black", weight=3]; 563[label="primRemInt (Pos vuz530) (Pos Zero)",fontsize=16,color="black",shape="box"];563 -> 586[label="",style="solid", color="black", weight=3]; 564[label="primRemInt (Pos vuz530) (Neg (Succ vuz5200))",fontsize=16,color="black",shape="box"];564 -> 587[label="",style="solid", color="black", weight=3]; 565[label="primRemInt (Pos vuz530) (Neg Zero)",fontsize=16,color="black",shape="box"];565 -> 588[label="",style="solid", color="black", weight=3]; 566[label="primRemInt (Neg vuz530) (Pos (Succ vuz5200))",fontsize=16,color="black",shape="box"];566 -> 589[label="",style="solid", color="black", weight=3]; 567[label="primRemInt (Neg vuz530) (Pos Zero)",fontsize=16,color="black",shape="box"];567 -> 590[label="",style="solid", color="black", weight=3]; 568[label="primRemInt (Neg vuz530) (Neg (Succ vuz5200))",fontsize=16,color="black",shape="box"];568 -> 591[label="",style="solid", color="black", weight=3]; 569[label="primRemInt (Neg vuz530) (Neg Zero)",fontsize=16,color="black",shape="box"];569 -> 592[label="",style="solid", color="black", weight=3]; 669[label="absReal1 (Integer (Pos (Succ vuz29000))) (not (primCmpInt (Pos (Succ vuz29000)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];669 -> 687[label="",style="solid", color="black", weight=3]; 670[label="absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];670 -> 688[label="",style="solid", color="black", weight=3]; 671[label="absReal1 (Integer (Neg (Succ vuz29000))) (not (primCmpInt (Neg (Succ vuz29000)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];671 -> 689[label="",style="solid", color="black", weight=3]; 672[label="absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];672 -> 690[label="",style="solid", color="black", weight=3]; 673[label="Integer (primRemInt vuz600 vuz590)",fontsize=16,color="green",shape="box"];673 -> 691[label="",style="dashed", color="green", weight=3]; 633[label="absReal1 (Pos (Succ vuz3200)) (not (GT == LT))",fontsize=16,color="black",shape="box"];633 -> 655[label="",style="solid", color="black", weight=3]; 634[label="absReal1 (Pos Zero) (not False)",fontsize=16,color="black",shape="box"];634 -> 656[label="",style="solid", color="black", weight=3]; 635[label="absReal1 (Neg (Succ vuz3200)) (not True)",fontsize=16,color="black",shape="box"];635 -> 657[label="",style="solid", color="black", weight=3]; 636[label="absReal1 (Neg Zero) (not False)",fontsize=16,color="black",shape="box"];636 -> 658[label="",style="solid", color="black", weight=3]; 963[label="primMinusNatS (Succ vuz780) (Succ vuz790)",fontsize=16,color="black",shape="box"];963 -> 975[label="",style="solid", color="black", weight=3]; 964[label="primMinusNatS (Succ vuz780) Zero",fontsize=16,color="black",shape="box"];964 -> 976[label="",style="solid", color="black", weight=3]; 965[label="primMinusNatS Zero (Succ vuz790)",fontsize=16,color="black",shape="box"];965 -> 977[label="",style="solid", color="black", weight=3]; 966[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];966 -> 978[label="",style="solid", color="black", weight=3]; 585[label="Pos (primModNatS vuz530 (Succ vuz5200))",fontsize=16,color="green",shape="box"];585 -> 618[label="",style="dashed", color="green", weight=3]; 586 -> 418[label="",style="dashed", color="red", weight=0]; 586[label="error []",fontsize=16,color="magenta"];587[label="Pos (primModNatS vuz530 (Succ vuz5200))",fontsize=16,color="green",shape="box"];587 -> 619[label="",style="dashed", color="green", weight=3]; 588 -> 418[label="",style="dashed", color="red", weight=0]; 588[label="error []",fontsize=16,color="magenta"];589[label="Neg (primModNatS vuz530 (Succ vuz5200))",fontsize=16,color="green",shape="box"];589 -> 620[label="",style="dashed", color="green", weight=3]; 590 -> 418[label="",style="dashed", color="red", weight=0]; 590[label="error []",fontsize=16,color="magenta"];591[label="Neg (primModNatS vuz530 (Succ vuz5200))",fontsize=16,color="green",shape="box"];591 -> 621[label="",style="dashed", color="green", weight=3]; 592 -> 418[label="",style="dashed", color="red", weight=0]; 592[label="error []",fontsize=16,color="magenta"];687[label="absReal1 (Integer (Pos (Succ vuz29000))) (not (primCmpNat (Succ vuz29000) Zero == LT))",fontsize=16,color="black",shape="box"];687 -> 705[label="",style="solid", color="black", weight=3]; 688[label="absReal1 (Integer (Pos Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="box"];688 -> 706[label="",style="solid", color="black", weight=3]; 689[label="absReal1 (Integer (Neg (Succ vuz29000))) (not (LT == LT))",fontsize=16,color="black",shape="box"];689 -> 707[label="",style="solid", color="black", weight=3]; 690[label="absReal1 (Integer (Neg Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="box"];690 -> 708[label="",style="solid", color="black", weight=3]; 691 -> 504[label="",style="dashed", color="red", weight=0]; 691[label="primRemInt vuz600 vuz590",fontsize=16,color="magenta"];691 -> 709[label="",style="dashed", color="magenta", weight=3]; 691 -> 710[label="",style="dashed", color="magenta", weight=3]; 655[label="absReal1 (Pos (Succ vuz3200)) (not False)",fontsize=16,color="black",shape="box"];655 -> 674[label="",style="solid", color="black", weight=3]; 656[label="absReal1 (Pos Zero) True",fontsize=16,color="black",shape="box"];656 -> 675[label="",style="solid", color="black", weight=3]; 657[label="absReal1 (Neg (Succ vuz3200)) False",fontsize=16,color="black",shape="box"];657 -> 676[label="",style="solid", color="black", weight=3]; 658[label="absReal1 (Neg Zero) True",fontsize=16,color="black",shape="box"];658 -> 677[label="",style="solid", color="black", weight=3]; 975 -> 943[label="",style="dashed", color="red", weight=0]; 975[label="primMinusNatS vuz780 vuz790",fontsize=16,color="magenta"];975 -> 983[label="",style="dashed", color="magenta", weight=3]; 975 -> 984[label="",style="dashed", color="magenta", weight=3]; 976[label="Succ vuz780",fontsize=16,color="green",shape="box"];977[label="Zero",fontsize=16,color="green",shape="box"];978[label="Zero",fontsize=16,color="green",shape="box"];618[label="primModNatS vuz530 (Succ vuz5200)",fontsize=16,color="burlywood",shape="triangle"];1250[label="vuz530/Succ vuz5300",fontsize=10,color="white",style="solid",shape="box"];618 -> 1250[label="",style="solid", color="burlywood", weight=9]; 1250 -> 637[label="",style="solid", color="burlywood", weight=3]; 1251[label="vuz530/Zero",fontsize=10,color="white",style="solid",shape="box"];618 -> 1251[label="",style="solid", color="burlywood", weight=9]; 1251 -> 638[label="",style="solid", color="burlywood", weight=3]; 619 -> 618[label="",style="dashed", color="red", weight=0]; 619[label="primModNatS vuz530 (Succ vuz5200)",fontsize=16,color="magenta"];619 -> 639[label="",style="dashed", color="magenta", weight=3]; 620 -> 618[label="",style="dashed", color="red", weight=0]; 620[label="primModNatS vuz530 (Succ vuz5200)",fontsize=16,color="magenta"];620 -> 640[label="",style="dashed", color="magenta", weight=3]; 621 -> 618[label="",style="dashed", color="red", weight=0]; 621[label="primModNatS vuz530 (Succ vuz5200)",fontsize=16,color="magenta"];621 -> 641[label="",style="dashed", color="magenta", weight=3]; 621 -> 642[label="",style="dashed", color="magenta", weight=3]; 705[label="absReal1 (Integer (Pos (Succ vuz29000))) (not (GT == LT))",fontsize=16,color="black",shape="box"];705 -> 724[label="",style="solid", color="black", weight=3]; 706[label="absReal1 (Integer (Pos Zero)) (not False)",fontsize=16,color="black",shape="box"];706 -> 725[label="",style="solid", color="black", weight=3]; 707[label="absReal1 (Integer (Neg (Succ vuz29000))) (not True)",fontsize=16,color="black",shape="box"];707 -> 726[label="",style="solid", color="black", weight=3]; 708[label="absReal1 (Integer (Neg Zero)) (not False)",fontsize=16,color="black",shape="box"];708 -> 727[label="",style="solid", color="black", weight=3]; 709[label="vuz600",fontsize=16,color="green",shape="box"];710[label="vuz590",fontsize=16,color="green",shape="box"];674[label="absReal1 (Pos (Succ vuz3200)) True",fontsize=16,color="black",shape="box"];674 -> 692[label="",style="solid", color="black", weight=3]; 675[label="Pos Zero",fontsize=16,color="green",shape="box"];676[label="absReal0 (Neg (Succ vuz3200)) otherwise",fontsize=16,color="black",shape="box"];676 -> 693[label="",style="solid", color="black", weight=3]; 677[label="Neg Zero",fontsize=16,color="green",shape="box"];983[label="vuz790",fontsize=16,color="green",shape="box"];984[label="vuz780",fontsize=16,color="green",shape="box"];637[label="primModNatS (Succ vuz5300) (Succ vuz5200)",fontsize=16,color="black",shape="box"];637 -> 659[label="",style="solid", color="black", weight=3]; 638[label="primModNatS Zero (Succ vuz5200)",fontsize=16,color="black",shape="box"];638 -> 660[label="",style="solid", color="black", weight=3]; 639[label="vuz5200",fontsize=16,color="green",shape="box"];640[label="vuz530",fontsize=16,color="green",shape="box"];641[label="vuz530",fontsize=16,color="green",shape="box"];642[label="vuz5200",fontsize=16,color="green",shape="box"];724[label="absReal1 (Integer (Pos (Succ vuz29000))) (not False)",fontsize=16,color="black",shape="box"];724 -> 741[label="",style="solid", color="black", weight=3]; 725[label="absReal1 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];725 -> 742[label="",style="solid", color="black", weight=3]; 726[label="absReal1 (Integer (Neg (Succ vuz29000))) False",fontsize=16,color="black",shape="box"];726 -> 743[label="",style="solid", color="black", weight=3]; 727[label="absReal1 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];727 -> 744[label="",style="solid", color="black", weight=3]; 692[label="Pos (Succ vuz3200)",fontsize=16,color="green",shape="box"];693[label="absReal0 (Neg (Succ vuz3200)) True",fontsize=16,color="black",shape="box"];693 -> 711[label="",style="solid", color="black", weight=3]; 659[label="primModNatS0 vuz5300 vuz5200 (primGEqNatS vuz5300 vuz5200)",fontsize=16,color="burlywood",shape="box"];1252[label="vuz5300/Succ vuz53000",fontsize=10,color="white",style="solid",shape="box"];659 -> 1252[label="",style="solid", color="burlywood", weight=9]; 1252 -> 678[label="",style="solid", color="burlywood", weight=3]; 1253[label="vuz5300/Zero",fontsize=10,color="white",style="solid",shape="box"];659 -> 1253[label="",style="solid", color="burlywood", weight=9]; 1253 -> 679[label="",style="solid", color="burlywood", weight=3]; 660[label="Zero",fontsize=16,color="green",shape="box"];741[label="absReal1 (Integer (Pos (Succ vuz29000))) True",fontsize=16,color="black",shape="box"];741 -> 761[label="",style="solid", color="black", weight=3]; 742[label="Integer (Pos Zero)",fontsize=16,color="green",shape="box"];743[label="absReal0 (Integer (Neg (Succ vuz29000))) otherwise",fontsize=16,color="black",shape="box"];743 -> 762[label="",style="solid", color="black", weight=3]; 744[label="Integer (Neg Zero)",fontsize=16,color="green",shape="box"];711[label="`negate` Neg (Succ vuz3200)",fontsize=16,color="black",shape="box"];711 -> 728[label="",style="solid", color="black", weight=3]; 678[label="primModNatS0 (Succ vuz53000) vuz5200 (primGEqNatS (Succ vuz53000) vuz5200)",fontsize=16,color="burlywood",shape="box"];1254[label="vuz5200/Succ vuz52000",fontsize=10,color="white",style="solid",shape="box"];678 -> 1254[label="",style="solid", color="burlywood", weight=9]; 1254 -> 694[label="",style="solid", color="burlywood", weight=3]; 1255[label="vuz5200/Zero",fontsize=10,color="white",style="solid",shape="box"];678 -> 1255[label="",style="solid", color="burlywood", weight=9]; 1255 -> 695[label="",style="solid", color="burlywood", weight=3]; 679[label="primModNatS0 Zero vuz5200 (primGEqNatS Zero vuz5200)",fontsize=16,color="burlywood",shape="box"];1256[label="vuz5200/Succ vuz52000",fontsize=10,color="white",style="solid",shape="box"];679 -> 1256[label="",style="solid", color="burlywood", weight=9]; 1256 -> 696[label="",style="solid", color="burlywood", weight=3]; 1257[label="vuz5200/Zero",fontsize=10,color="white",style="solid",shape="box"];679 -> 1257[label="",style="solid", color="burlywood", weight=9]; 1257 -> 697[label="",style="solid", color="burlywood", weight=3]; 761[label="Integer (Pos (Succ vuz29000))",fontsize=16,color="green",shape="box"];762[label="absReal0 (Integer (Neg (Succ vuz29000))) True",fontsize=16,color="black",shape="box"];762 -> 776[label="",style="solid", color="black", weight=3]; 728[label="primNegInt (Neg (Succ vuz3200))",fontsize=16,color="black",shape="triangle"];728 -> 745[label="",style="solid", color="black", weight=3]; 694[label="primModNatS0 (Succ vuz53000) (Succ vuz52000) (primGEqNatS (Succ vuz53000) (Succ vuz52000))",fontsize=16,color="black",shape="box"];694 -> 712[label="",style="solid", color="black", weight=3]; 695[label="primModNatS0 (Succ vuz53000) Zero (primGEqNatS (Succ vuz53000) Zero)",fontsize=16,color="black",shape="box"];695 -> 713[label="",style="solid", color="black", weight=3]; 696[label="primModNatS0 Zero (Succ vuz52000) (primGEqNatS Zero (Succ vuz52000))",fontsize=16,color="black",shape="box"];696 -> 714[label="",style="solid", color="black", weight=3]; 697[label="primModNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];697 -> 715[label="",style="solid", color="black", weight=3]; 776[label="`negate` Integer (Neg (Succ vuz29000))",fontsize=16,color="black",shape="box"];776 -> 796[label="",style="solid", color="black", weight=3]; 745[label="Pos (Succ vuz3200)",fontsize=16,color="green",shape="box"];712 -> 1034[label="",style="dashed", color="red", weight=0]; 712[label="primModNatS0 (Succ vuz53000) (Succ vuz52000) (primGEqNatS vuz53000 vuz52000)",fontsize=16,color="magenta"];712 -> 1035[label="",style="dashed", color="magenta", weight=3]; 712 -> 1036[label="",style="dashed", color="magenta", weight=3]; 712 -> 1037[label="",style="dashed", color="magenta", weight=3]; 712 -> 1038[label="",style="dashed", color="magenta", weight=3]; 713[label="primModNatS0 (Succ vuz53000) Zero True",fontsize=16,color="black",shape="box"];713 -> 731[label="",style="solid", color="black", weight=3]; 714[label="primModNatS0 Zero (Succ vuz52000) False",fontsize=16,color="black",shape="box"];714 -> 732[label="",style="solid", color="black", weight=3]; 715[label="primModNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];715 -> 733[label="",style="solid", color="black", weight=3]; 796[label="Integer (primNegInt (Neg (Succ vuz29000)))",fontsize=16,color="green",shape="box"];796 -> 826[label="",style="dashed", color="green", weight=3]; 1035[label="vuz53000",fontsize=16,color="green",shape="box"];1036[label="vuz52000",fontsize=16,color="green",shape="box"];1037[label="vuz53000",fontsize=16,color="green",shape="box"];1038[label="vuz52000",fontsize=16,color="green",shape="box"];1034[label="primModNatS0 (Succ vuz98) (Succ vuz99) (primGEqNatS vuz100 vuz101)",fontsize=16,color="burlywood",shape="triangle"];1258[label="vuz100/Succ vuz1000",fontsize=10,color="white",style="solid",shape="box"];1034 -> 1258[label="",style="solid", color="burlywood", weight=9]; 1258 -> 1067[label="",style="solid", color="burlywood", weight=3]; 1259[label="vuz100/Zero",fontsize=10,color="white",style="solid",shape="box"];1034 -> 1259[label="",style="solid", color="burlywood", weight=9]; 1259 -> 1068[label="",style="solid", color="burlywood", weight=3]; 731 -> 618[label="",style="dashed", color="red", weight=0]; 731[label="primModNatS (primMinusNatS (Succ vuz53000) Zero) (Succ Zero)",fontsize=16,color="magenta"];731 -> 750[label="",style="dashed", color="magenta", weight=3]; 731 -> 751[label="",style="dashed", color="magenta", weight=3]; 732[label="Succ Zero",fontsize=16,color="green",shape="box"];733 -> 618[label="",style="dashed", color="red", weight=0]; 733[label="primModNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];733 -> 752[label="",style="dashed", color="magenta", weight=3]; 733 -> 753[label="",style="dashed", color="magenta", weight=3]; 826 -> 728[label="",style="dashed", color="red", weight=0]; 826[label="primNegInt (Neg (Succ vuz29000))",fontsize=16,color="magenta"];826 -> 840[label="",style="dashed", color="magenta", weight=3]; 1067[label="primModNatS0 (Succ vuz98) (Succ vuz99) (primGEqNatS (Succ vuz1000) vuz101)",fontsize=16,color="burlywood",shape="box"];1260[label="vuz101/Succ vuz1010",fontsize=10,color="white",style="solid",shape="box"];1067 -> 1260[label="",style="solid", color="burlywood", weight=9]; 1260 -> 1069[label="",style="solid", color="burlywood", weight=3]; 1261[label="vuz101/Zero",fontsize=10,color="white",style="solid",shape="box"];1067 -> 1261[label="",style="solid", color="burlywood", weight=9]; 1261 -> 1070[label="",style="solid", color="burlywood", weight=3]; 1068[label="primModNatS0 (Succ vuz98) (Succ vuz99) (primGEqNatS Zero vuz101)",fontsize=16,color="burlywood",shape="box"];1262[label="vuz101/Succ vuz1010",fontsize=10,color="white",style="solid",shape="box"];1068 -> 1262[label="",style="solid", color="burlywood", weight=9]; 1262 -> 1071[label="",style="solid", color="burlywood", weight=3]; 1263[label="vuz101/Zero",fontsize=10,color="white",style="solid",shape="box"];1068 -> 1263[label="",style="solid", color="burlywood", weight=9]; 1263 -> 1072[label="",style="solid", color="burlywood", weight=3]; 750 -> 552[label="",style="dashed", color="red", weight=0]; 750[label="primMinusNatS (Succ vuz53000) Zero",fontsize=16,color="magenta"];750 -> 767[label="",style="dashed", color="magenta", weight=3]; 751[label="Zero",fontsize=16,color="green",shape="box"];752 -> 554[label="",style="dashed", color="red", weight=0]; 752[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];753[label="Zero",fontsize=16,color="green",shape="box"];840[label="vuz29000",fontsize=16,color="green",shape="box"];1069[label="primModNatS0 (Succ vuz98) (Succ vuz99) (primGEqNatS (Succ vuz1000) (Succ vuz1010))",fontsize=16,color="black",shape="box"];1069 -> 1073[label="",style="solid", color="black", weight=3]; 1070[label="primModNatS0 (Succ vuz98) (Succ vuz99) (primGEqNatS (Succ vuz1000) Zero)",fontsize=16,color="black",shape="box"];1070 -> 1074[label="",style="solid", color="black", weight=3]; 1071[label="primModNatS0 (Succ vuz98) (Succ vuz99) (primGEqNatS Zero (Succ vuz1010))",fontsize=16,color="black",shape="box"];1071 -> 1075[label="",style="solid", color="black", weight=3]; 1072[label="primModNatS0 (Succ vuz98) (Succ vuz99) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];1072 -> 1076[label="",style="solid", color="black", weight=3]; 767[label="vuz53000",fontsize=16,color="green",shape="box"];1073 -> 1034[label="",style="dashed", color="red", weight=0]; 1073[label="primModNatS0 (Succ vuz98) (Succ vuz99) (primGEqNatS vuz1000 vuz1010)",fontsize=16,color="magenta"];1073 -> 1077[label="",style="dashed", color="magenta", weight=3]; 1073 -> 1078[label="",style="dashed", color="magenta", weight=3]; 1074[label="primModNatS0 (Succ vuz98) (Succ vuz99) True",fontsize=16,color="black",shape="triangle"];1074 -> 1079[label="",style="solid", color="black", weight=3]; 1075[label="primModNatS0 (Succ vuz98) (Succ vuz99) False",fontsize=16,color="black",shape="box"];1075 -> 1080[label="",style="solid", color="black", weight=3]; 1076 -> 1074[label="",style="dashed", color="red", weight=0]; 1076[label="primModNatS0 (Succ vuz98) (Succ vuz99) True",fontsize=16,color="magenta"];1077[label="vuz1000",fontsize=16,color="green",shape="box"];1078[label="vuz1010",fontsize=16,color="green",shape="box"];1079 -> 618[label="",style="dashed", color="red", weight=0]; 1079[label="primModNatS (primMinusNatS (Succ vuz98) (Succ vuz99)) (Succ (Succ vuz99))",fontsize=16,color="magenta"];1079 -> 1081[label="",style="dashed", color="magenta", weight=3]; 1079 -> 1082[label="",style="dashed", color="magenta", weight=3]; 1080[label="Succ (Succ vuz98)",fontsize=16,color="green",shape="box"];1081 -> 943[label="",style="dashed", color="red", weight=0]; 1081[label="primMinusNatS (Succ vuz98) (Succ vuz99)",fontsize=16,color="magenta"];1081 -> 1083[label="",style="dashed", color="magenta", weight=3]; 1081 -> 1084[label="",style="dashed", color="magenta", weight=3]; 1082[label="Succ vuz99",fontsize=16,color="green",shape="box"];1083[label="Succ vuz99",fontsize=16,color="green",shape="box"];1084[label="Succ vuz98",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(vuz53000)), Zero) -> new_primModNatS(new_primMinusNatS0(vuz53000), Zero) new_primModNatS(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS0(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS(Succ(Zero), Zero) -> new_primModNatS(new_primMinusNatS1, Zero) new_primModNatS0(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS0(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS0(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS0(vuz98, vuz99, Zero, Zero) -> new_primModNatS00(vuz98, vuz99) new_primModNatS00(vuz98, vuz99) -> new_primModNatS(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS2(Succ(x0), 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(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS0(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS0(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS0(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS0(vuz98, vuz99, Zero, Zero) -> new_primModNatS00(vuz98, vuz99) new_primModNatS00(vuz98, vuz99) -> new_primModNatS(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS2(Succ(x0), 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(vuz53000)), Succ(vuz52000)) -> new_primModNatS0(vuz53000, vuz52000, vuz53000, vuz52000) 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(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero ---------------------------------------- (18) Obligation: Q DP problem: The TRS P consists of the following rules: new_primModNatS0(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS0(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS0(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS0(vuz98, vuz99, Zero, Zero) -> new_primModNatS00(vuz98, vuz99) new_primModNatS00(vuz98, vuz99) -> new_primModNatS(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS2(Succ(x0), 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(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS0(vuz98, vuz99, vuz1000, vuz1010) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS2(Succ(x0), 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(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS0(vuz98, vuz99, vuz1000, vuz1010) 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(vuz53000)), Zero) -> new_primModNatS(new_primMinusNatS0(vuz53000), Zero) The TRS R consists of the following rules: new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS2(Succ(x0), 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(vuz53000)), Zero) -> new_primModNatS(new_primMinusNatS0(vuz53000), Zero) Strictly oriented rules of the TRS R: new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Succ(vuz790)) -> 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(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primMinusNatS2(Succ(x0), 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'0(vuz53, vuz52) -> new_gcd0Gcd'(vuz52, new_primRemInt(vuz53, vuz52)) new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) new_gcd0Gcd'(vuz56, vuz55) -> new_gcd0Gcd'1(new_esEs(vuz55), vuz56, vuz55) The TRS R consists of the following rules: new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primRemInt(Pos(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_esEs(Neg(Succ(vuz2500))) -> new_primEqInt(Neg(Succ(vuz2500))) new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primModNatS1(Zero, vuz5200) -> Zero new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_error -> error([]) new_primEqInt(Neg(Succ(vuz26000))) -> False new_esEs(Pos(Succ(vuz2500))) -> new_primEqInt(Pos(Succ(vuz2500))) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_esEs(Pos(Zero)) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(x0))) new_esEs(Neg(Succ(x0))) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_esEs(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (29) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'(vuz56, vuz55) -> new_gcd0Gcd'1(new_esEs(vuz55), vuz56, vuz55) 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))) ---------------------------------------- (30) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'0(vuz53, vuz52) -> new_gcd0Gcd'(vuz52, new_primRemInt(vuz53, vuz52)) new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primRemInt(Pos(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_esEs(Neg(Succ(vuz2500))) -> new_primEqInt(Neg(Succ(vuz2500))) new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primModNatS1(Zero, vuz5200) -> Zero new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_error -> error([]) new_primEqInt(Neg(Succ(vuz26000))) -> False new_esEs(Pos(Succ(vuz2500))) -> new_primEqInt(Pos(Succ(vuz2500))) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_esEs(Pos(Zero)) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(x0))) new_esEs(Neg(Succ(x0))) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_esEs(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (31) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (32) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) new_gcd0Gcd'0(vuz53, vuz52) -> new_gcd0Gcd'(vuz52, new_primRemInt(vuz53, vuz52)) 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_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primRemInt(Pos(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_esEs(Neg(Succ(vuz2500))) -> new_primEqInt(Neg(Succ(vuz2500))) new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primModNatS1(Zero, vuz5200) -> Zero new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_error -> error([]) new_primEqInt(Neg(Succ(vuz26000))) -> False new_esEs(Pos(Succ(vuz2500))) -> new_primEqInt(Pos(Succ(vuz2500))) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_esEs(Pos(Zero)) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(x0))) new_esEs(Neg(Succ(x0))) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_esEs(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (33) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (34) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) new_gcd0Gcd'0(vuz53, vuz52) -> new_gcd0Gcd'(vuz52, new_primRemInt(vuz53, vuz52)) 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(vuz26000))) -> False new_primRemInt(Pos(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_esEs(Pos(Zero)) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_esEs(Pos(Succ(x0))) new_esEs(Neg(Succ(x0))) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_esEs(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (35) QReductionProof (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)) ---------------------------------------- (36) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) new_gcd0Gcd'0(vuz53, vuz52) -> new_gcd0Gcd'(vuz52, new_primRemInt(vuz53, vuz52)) 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(vuz26000))) -> False new_primRemInt(Pos(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (37) 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)))) ---------------------------------------- (38) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) new_gcd0Gcd'0(vuz53, vuz52) -> new_gcd0Gcd'(vuz52, new_primRemInt(vuz53, vuz52)) 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(vuz26000))) -> False new_primRemInt(Pos(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (39) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (40) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) new_gcd0Gcd'0(vuz53, vuz52) -> new_gcd0Gcd'(vuz52, new_primRemInt(vuz53, vuz52)) 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(vuz26000))) -> False new_primRemInt(Pos(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (41) 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)))) ---------------------------------------- (42) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) new_gcd0Gcd'0(vuz53, vuz52) -> new_gcd0Gcd'(vuz52, new_primRemInt(vuz53, vuz52)) 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(vuz26000))) -> False new_primRemInt(Pos(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) 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'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) new_gcd0Gcd'0(vuz53, vuz52) -> new_gcd0Gcd'(vuz52, new_primRemInt(vuz53, vuz52)) 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(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) 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_primEqInt(Neg(Succ(x0))) new_primEqInt(Pos(Zero)) new_primEqInt(Pos(Succ(x0))) new_primEqInt(Neg(Zero)) ---------------------------------------- (46) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) new_gcd0Gcd'0(vuz53, vuz52) -> new_gcd0Gcd'(vuz52, new_primRemInt(vuz53, vuz52)) 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(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (47) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (48) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) new_gcd0Gcd'0(vuz53, vuz52) -> new_gcd0Gcd'(vuz52, new_primRemInt(vuz53, vuz52)) 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(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primMinusNatS1 -> Zero Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (49) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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(vuz53, vuz52) -> new_gcd0Gcd'(vuz52, new_primRemInt(vuz53, vuz52)) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) *(new_gcd0Gcd'1(False, x2, x3)_>=_new_gcd0Gcd'0(x2, x3)) *new_gcd0Gcd'0(vuz53, vuz52) -> new_gcd0Gcd'(vuz52, new_primRemInt(vuz53, vuz52)) *(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. ---------------------------------------- (50) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) new_gcd0Gcd'0(vuz53, vuz52) -> new_gcd0Gcd'(vuz52, new_primRemInt(vuz53, vuz52)) 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(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (51) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'0(vuz53, vuz52) -> new_gcd0Gcd'(vuz52, new_primRemInt(vuz53, vuz52)) 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)) ---------------------------------------- (52) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (53) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 4 less nodes. ---------------------------------------- (54) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (55) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (56) Obligation: Q DP problem: The TRS P consists of the following rules: 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (57) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_error new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) ---------------------------------------- (58) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (59) 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_primModNatS01(x0, x1, x0, x1))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1)))) ---------------------------------------- (60) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (61) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (62) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (63) 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)))) ---------------------------------------- (64) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (65) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (66) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (67) 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)))) ---------------------------------------- (68) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (69) 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_primModNatS01(x0, x1, x0, x1))),new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Pos(new_primModNatS01(x0, x1, x0, x1)))) ---------------------------------------- (70) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (71) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (72) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (73) 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)))) ---------------------------------------- (74) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (75) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (76) Obligation: Q DP problem: The TRS P consists of the following rules: new_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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (77) 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)))) ---------------------------------------- (78) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (79) 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_primModNatS01(x0, x1, x0, x1))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Pos(Succ(Succ(x1)))) -> new_gcd0Gcd'(Pos(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1)))) ---------------------------------------- (80) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (81) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (82) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (83) 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)))) ---------------------------------------- (84) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (85) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (86) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (87) 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)))) ---------------------------------------- (88) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (89) 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_primModNatS01(x0, x1, x0, x1))),new_gcd0Gcd'0(Neg(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Neg(new_primModNatS01(x0, x1, x0, x1)))) ---------------------------------------- (90) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (91) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (92) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (93) 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)))) ---------------------------------------- (94) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (95) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (96) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(x0, x1, x0, x1))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (97) 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)))) ---------------------------------------- (98) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) new_gcd0Gcd'0(Pos(Succ(Succ(x0))), Neg(Succ(Succ(x1)))) -> new_gcd0Gcd'(Neg(Succ(Succ(x1))), Pos(new_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (99) 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_primModNatS01(x0, x1, x0, x1))) 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_primModNatS02(Zero, Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero)))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(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_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), 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))))) ---------------------------------------- (100) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (101) 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_primModNatS02(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))))) ---------------------------------------- (102) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), 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(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (103) 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_primModNatS02(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))))) ---------------------------------------- (104) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (105) 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))))) ---------------------------------------- (106) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero, Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (107) 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))))) ---------------------------------------- (108) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (109) 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))))) ---------------------------------------- (110) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero, Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (111) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (112) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'(y0, Pos(Succ(x0))) -> new_gcd0Gcd'1(False, y0, Pos(Succ(x0))) new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (113) 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))))) ---------------------------------------- (114) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (115) 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)))) ---------------------------------------- (116) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (117) 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)))) ---------------------------------------- (118) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (119) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (120) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (121) 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)))) ---------------------------------------- (122) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (123) 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_primModNatS01(x0, x1, x0, x1))) 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_primModNatS02(Zero, Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero)))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(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_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), Zero))),new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), 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))))) ---------------------------------------- (124) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Zero, Zero))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Pos(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (125) 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_primModNatS02(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))))) ---------------------------------------- (126) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS02(Succ(x2), 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(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (127) 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_primModNatS02(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))))) ---------------------------------------- (128) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (129) 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))))) ---------------------------------------- (130) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero, Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (131) 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))))) ---------------------------------------- (132) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (133) 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))))) ---------------------------------------- (134) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero, Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (135) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (136) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (137) 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))))) ---------------------------------------- (138) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (139) 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)))) ---------------------------------------- (140) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (141) 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)))) ---------------------------------------- (142) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (143) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (144) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (145) 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)))) ---------------------------------------- (146) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (147) 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_primModNatS01(x0, x1, x0, x1))) 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_primModNatS02(Zero, Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero)))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(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_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), 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))))) ---------------------------------------- (148) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (149) 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_primModNatS02(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))))) ---------------------------------------- (150) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), 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(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (151) 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_primModNatS02(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))))) ---------------------------------------- (152) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (153) 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))))) ---------------------------------------- (154) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero, Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (155) 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))))) ---------------------------------------- (156) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (157) 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))))) ---------------------------------------- (158) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero, Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (159) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (160) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (161) 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))))) ---------------------------------------- (162) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (163) 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)))) ---------------------------------------- (164) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (165) 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)))) ---------------------------------------- (166) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (167) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (168) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (169) 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)))) ---------------------------------------- (170) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (171) 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_primModNatS01(x0, x1, x0, x1))) 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_primModNatS02(Zero, Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero)))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(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_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), Zero))),new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), 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))))) ---------------------------------------- (172) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Zero, Zero))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Succ(x3))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(x3)))), Neg(new_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (173) 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_primModNatS02(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))))) ---------------------------------------- (174) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(x2), Succ(x3), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(x2)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Neg(new_primModNatS02(Succ(x2), 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(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (175) 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_primModNatS02(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))))) ---------------------------------------- (176) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Succ(x2)), Succ(Zero)), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (177) 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))))) ---------------------------------------- (178) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero, Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (179) 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))))) ---------------------------------------- (180) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (181) 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))))) ---------------------------------------- (182) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero, Succ(Zero)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (183) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (184) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (185) 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))))) ---------------------------------------- (186) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (187) 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)))) ---------------------------------------- (188) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (189) 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)))) ---------------------------------------- (190) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (191) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (192) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (193) 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)))) ---------------------------------------- (194) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (195) 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_primModNatS01(Succ(x2), Succ(x3), x2, x3))) 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_primModNatS02(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_primModNatS02(Succ(Zero), 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_primModNatS01(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_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(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_primModNatS02(Succ(Succ(x2)), 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)))))) ---------------------------------------- (196) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), 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_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (197) 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_primModNatS02(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)))))) ---------------------------------------- (198) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), 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(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (199) 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_primModNatS02(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)))))) ---------------------------------------- (200) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (201) 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)))))) ---------------------------------------- (202) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (203) 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)))))) ---------------------------------------- (204) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (205) 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)))))) ---------------------------------------- (206) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero, Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (207) 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)))))) ---------------------------------------- (208) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (209) 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)))))) ---------------------------------------- (210) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero, Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (211) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (212) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (213) 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)))))) ---------------------------------------- (214) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (215) 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_primModNatS01(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_primModNatS01(x0, Zero, x0, Zero)))) ---------------------------------------- (216) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (217) 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)))) ---------------------------------------- (218) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (219) 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)))) ---------------------------------------- (220) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (221) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (222) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (223) 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)))) ---------------------------------------- (224) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (225) 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_primModNatS01(Succ(x2), Succ(x3), x2, x3))) 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_primModNatS02(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_primModNatS02(Succ(Zero), 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_primModNatS01(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_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(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_primModNatS02(Succ(Succ(x2)), 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)))))) ---------------------------------------- (226) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Zero), 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_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (227) 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_primModNatS02(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)))))) ---------------------------------------- (228) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS02(Succ(Succ(x2)), 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(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (229) 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_primModNatS02(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)))))) ---------------------------------------- (230) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (231) 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)))))) ---------------------------------------- (232) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (233) 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)))))) ---------------------------------------- (234) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (235) 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)))))) ---------------------------------------- (236) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero, Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (237) 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)))))) ---------------------------------------- (238) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (239) 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)))))) ---------------------------------------- (240) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero, Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (241) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (242) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (243) 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)))))) ---------------------------------------- (244) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (245) 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_primModNatS01(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_primModNatS01(x0, Zero, x0, Zero)))) ---------------------------------------- (246) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (247) 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)))) ---------------------------------------- (248) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (249) 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)))) ---------------------------------------- (250) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (251) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (252) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (253) 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)))) ---------------------------------------- (254) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (255) 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_primModNatS01(Succ(x2), Succ(x3), x2, x3))) 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_primModNatS02(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_primModNatS02(Succ(Zero), 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_primModNatS01(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_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(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_primModNatS02(Succ(Succ(x2)), 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)))))) ---------------------------------------- (256) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero)))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), 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_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (257) 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_primModNatS02(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)))))) ---------------------------------------- (258) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), 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(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (259) 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_primModNatS02(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)))))) ---------------------------------------- (260) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (261) 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)))))) ---------------------------------------- (262) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (263) 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)))))) ---------------------------------------- (264) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (265) 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)))))) ---------------------------------------- (266) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero, Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (267) 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)))))) ---------------------------------------- (268) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (269) 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)))))) ---------------------------------------- (270) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero, Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (271) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (272) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (273) 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)))))) ---------------------------------------- (274) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (275) 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_primModNatS01(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_primModNatS01(x0, Zero, x0, Zero)))) ---------------------------------------- (276) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (277) 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)))) ---------------------------------------- (278) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (279) 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)))) ---------------------------------------- (280) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (281) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (282) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (283) 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)))) ---------------------------------------- (284) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (285) 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_primModNatS01(Succ(x2), Succ(x3), x2, x3))) 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_primModNatS02(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_primModNatS02(Succ(Zero), 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_primModNatS01(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_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3)))) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(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_primModNatS02(Succ(Succ(x2)), 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)))))) ---------------------------------------- (286) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero)))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Zero), 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_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (287) 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_primModNatS02(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)))))) ---------------------------------------- (288) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(Succ(x2)), Succ(Succ(x3)), x2, x3))) new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x2))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Neg(new_primModNatS02(Succ(Succ(x2)), 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(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (289) 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_primModNatS02(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)))))) ---------------------------------------- (290) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Succ(x2))), Succ(Succ(Zero))), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (291) 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)))))) ---------------------------------------- (292) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (293) 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)))))) ---------------------------------------- (294) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Succ(x2)), Succ(Zero)), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (295) 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)))))) ---------------------------------------- (296) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero, Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (297) 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)))))) ---------------------------------------- (298) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(new_primMinusNatS2(Succ(x2), Zero), Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (299) 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)))))) ---------------------------------------- (300) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'1(False, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero, Succ(Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (301) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (302) Obligation: Q DP problem: The TRS P consists of the following rules: new_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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (303) 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)))))) ---------------------------------------- (304) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (305) 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_primModNatS01(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_primModNatS01(x0, Zero, x0, Zero)))) ---------------------------------------- (306) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (307) 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)))) ---------------------------------------- (308) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (309) 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)))) ---------------------------------------- (310) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (311) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (312) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (313) 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)))) ---------------------------------------- (314) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (315) 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, x_3, x_4)) = 1 POL(new_primModNatS02(x_1, x_2)) = 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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Zero, vuz5200) -> Zero ---------------------------------------- (316) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (317) 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, x_3, x_4)) = 1 POL(new_primModNatS02(x_1, x_2)) = 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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Zero, vuz5200) -> Zero ---------------------------------------- (318) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (319) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (320) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(x0, Zero, x0, Zero))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (321) 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(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_primModNatS01(x0, Zero, 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_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_primModNatS01(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)) = 2*x_1 POL(Pos(x_1)) = 0 POL(Succ(x_1)) = 1 + x_1 POL(Zero) = 1 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, x_3, x_4)) = 2 + x_1 POL(new_primModNatS02(x_1, x_2)) = 1 + 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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) ---------------------------------------- (322) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(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))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (323) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (324) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(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))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (325) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x91), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'0(x89, x90)=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x91))))), Neg(Succ(Succ(Succ(Zero))))) ==> 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))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x91))))), Neg(Succ(Succ(Succ(Zero)))))) *We consider the chain new_gcd0Gcd'1(False, x92, x93) -> new_gcd0Gcd'0(x92, x93), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) which results in the following constraint: (1) (new_gcd0Gcd'0(x92, x93)=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) ==> new_gcd0Gcd'1(False, x92, x93)_>=_new_gcd0Gcd'0(x92, x93)) 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(Zero))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))) *We consider the chain new_gcd0Gcd'1(False, x94, x95) -> new_gcd0Gcd'0(x94, x95), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x96))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x96, Zero, x96, Zero))) which results in the following constraint: (1) (new_gcd0Gcd'0(x94, x95)=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x96))))), Neg(Succ(Succ(Zero)))) ==> new_gcd0Gcd'1(False, x94, x95)_>=_new_gcd0Gcd'0(x94, x95)) 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(x96))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x96))))), Neg(Succ(Succ(Zero))))) *We consider the chain new_gcd0Gcd'1(False, x97, x98) -> new_gcd0Gcd'0(x97, x98), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x99))))), Pos(Succ(Succ(Succ(Succ(x100)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x100))))), Pos(new_primModNatS01(Succ(Succ(x99)), Succ(Succ(x100)), x99, x100))) which results in the following constraint: (1) (new_gcd0Gcd'0(x97, x98)=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x99))))), Pos(Succ(Succ(Succ(Succ(x100)))))) ==> new_gcd0Gcd'1(False, x97, x98)_>=_new_gcd0Gcd'0(x97, x98)) 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(x99))))), Pos(Succ(Succ(Succ(Succ(x100))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x99))))), Pos(Succ(Succ(Succ(Succ(x100))))))) *We consider the chain new_gcd0Gcd'1(False, x101, x102) -> new_gcd0Gcd'0(x101, x102), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x103))))), Pos(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'0(x101, x102)=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103)))))) ==> new_gcd0Gcd'1(False, x101, x102)_>=_new_gcd0Gcd'0(x101, x102)) 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(x103))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))))) *We consider the chain new_gcd0Gcd'1(False, x104, x105) -> new_gcd0Gcd'0(x104, x105), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x106))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x106), Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'0(x104, x105)=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x106))))), Pos(Succ(Succ(Succ(Zero))))) ==> new_gcd0Gcd'1(False, x104, x105)_>=_new_gcd0Gcd'0(x104, x105)) 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(x106))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x106))))), Pos(Succ(Succ(Succ(Zero)))))) *We consider the chain new_gcd0Gcd'1(False, x107, x108) -> new_gcd0Gcd'0(x107, x108), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) which results in the following constraint: (1) (new_gcd0Gcd'0(x107, x108)=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) ==> new_gcd0Gcd'1(False, x107, x108)_>=_new_gcd0Gcd'0(x107, x108)) 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(Zero))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))) *We consider the chain new_gcd0Gcd'1(False, x109, x110) -> new_gcd0Gcd'0(x109, x110), new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x111))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x111, Zero, x111, Zero))) which results in the following constraint: (1) (new_gcd0Gcd'0(x109, x110)=new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x111))))), Pos(Succ(Succ(Zero)))) ==> new_gcd0Gcd'1(False, x109, x110)_>=_new_gcd0Gcd'0(x109, x110)) 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(x111))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x111))))), Pos(Succ(Succ(Zero))))) *We consider the chain new_gcd0Gcd'1(False, x112, x113) -> new_gcd0Gcd'0(x112, x113), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x114))))), Pos(Succ(Succ(Succ(Succ(x115)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x115))))), Neg(new_primModNatS01(Succ(Succ(x114)), Succ(Succ(x115)), x114, x115))) which results in the following constraint: (1) (new_gcd0Gcd'0(x112, x113)=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x114))))), Pos(Succ(Succ(Succ(Succ(x115)))))) ==> new_gcd0Gcd'1(False, x112, x113)_>=_new_gcd0Gcd'0(x112, x113)) 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(x114))))), Pos(Succ(Succ(Succ(Succ(x115))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x114))))), Pos(Succ(Succ(Succ(Succ(x115))))))) *We consider the chain new_gcd0Gcd'1(False, x116, x117) -> new_gcd0Gcd'0(x116, x117), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x118)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x118))))), Neg(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'0(x116, x117)=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x118)))))) ==> new_gcd0Gcd'1(False, x116, x117)_>=_new_gcd0Gcd'0(x116, x117)) 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(x118))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x118))))))) *We consider the chain new_gcd0Gcd'1(False, x119, x120) -> new_gcd0Gcd'0(x119, x120), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x121))))), Neg(Succ(Succ(Succ(Succ(x122)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x122))))), Neg(new_primModNatS01(Succ(Succ(x121)), Succ(Succ(x122)), x121, x122))) which results in the following constraint: (1) (new_gcd0Gcd'0(x119, x120)=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x121))))), Neg(Succ(Succ(Succ(Succ(x122)))))) ==> new_gcd0Gcd'1(False, x119, x120)_>=_new_gcd0Gcd'0(x119, x120)) 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(x121))))), Neg(Succ(Succ(Succ(Succ(x122))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x121))))), Neg(Succ(Succ(Succ(Succ(x122))))))) *We consider the chain new_gcd0Gcd'1(False, x123, x124) -> new_gcd0Gcd'0(x123, x124), new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x125)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x125))))), Neg(Succ(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'0(x123, x124)=new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x125)))))) ==> 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(Zero)))), Neg(Succ(Succ(Succ(Succ(x125))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x125))))))) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(Succ(x394)), Succ(Succ(x395)), x394, x395)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x822, x823, x394, x395)=Succ(x397) which results in the following new constraints: (3) (new_primModNatS02(x825, x824)=Succ(x397) & Succ(Succ(Zero))=x825 & Succ(Succ(Zero))=x824 ==> 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_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (4) (new_primModNatS01(x829, x828, x827, x826)=Succ(x397) & Succ(Succ(Succ(x827)))=x829 & Succ(Succ(Succ(x826)))=x828 & (\/x830:new_primModNatS01(x829, x828, x827, x826)=Succ(x830) & Succ(Succ(x827))=x829 & Succ(Succ(x826))=x828 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x827))))), Neg(Succ(Succ(Succ(Succ(x826))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x826))))), Pos(new_primModNatS01(Succ(Succ(x827)), Succ(Succ(x826)), x827, x826)))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x827)))))), Neg(Succ(Succ(Succ(Succ(Succ(x826)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(x826)))))), Pos(new_primModNatS01(Succ(Succ(Succ(x827))), Succ(Succ(Succ(x826))), Succ(x827), Succ(x826))))) (5) (new_primModNatS02(x833, x832)=Succ(x397) & Succ(Succ(Succ(x831)))=x833 & Succ(Succ(Zero))=x832 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x831)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x831))), Succ(Succ(Zero)), Succ(x831), 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_primModNatS01(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_primModNatS02(x825, x824)=Succ(x397) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS2(Succ(x838), Succ(x837)), Succ(x837))=Succ(x397) & Succ(Succ(Zero))=x838 & Succ(Succ(Zero))=x837 ==> 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_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS01(x829, x828, x827, x826)=Succ(x397) & Succ(Succ(Succ(x827)))=x829 & Succ(Succ(Succ(x826)))=x828 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x827)))))), Neg(Succ(Succ(Succ(Succ(Succ(x826)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(x826)))))), Pos(new_primModNatS01(Succ(Succ(Succ(x827))), Succ(Succ(Succ(x826))), Succ(x827), Succ(x826))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(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(Succ(x831)))=x857 & Succ(Succ(Zero))=x856 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x831)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x831))), Succ(Succ(Zero)), Succ(x831), 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_primModNatS01(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(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x829, x828, x827, x826)=Succ(x397) which results in the following new constraints: (12) (new_primModNatS02(x844, x843)=Succ(x397) & Succ(Succ(Succ(Zero)))=x844 & Succ(Succ(Succ(Zero)))=x843 ==> 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_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (13) (new_primModNatS01(x848, x847, x846, x845)=Succ(x397) & Succ(Succ(Succ(Succ(x846))))=x848 & Succ(Succ(Succ(Succ(x845))))=x847 & (\/x849:new_primModNatS01(x848, x847, x846, x845)=Succ(x849) & Succ(Succ(Succ(x846)))=x848 & Succ(Succ(Succ(x845)))=x847 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x846)))))), Neg(Succ(Succ(Succ(Succ(Succ(x845)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(x845)))))), Pos(new_primModNatS01(Succ(Succ(Succ(x846))), Succ(Succ(Succ(x845))), Succ(x846), Succ(x845))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x846))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x845))))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x845))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x846)))), Succ(Succ(Succ(Succ(x845)))), Succ(Succ(x846)), Succ(Succ(x845)))))) (14) (new_primModNatS02(x852, x851)=Succ(x397) & Succ(Succ(Succ(Succ(x850))))=x852 & Succ(Succ(Succ(Zero)))=x851 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x850))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x850)))), Succ(Succ(Succ(Zero))), Succ(Succ(x850)), 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_primModNatS01(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(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), 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(x846))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x845))))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x845))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x846)))), Succ(Succ(Succ(Succ(x845)))), Succ(Succ(x846)), Succ(Succ(x845)))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x850))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x850)))), Succ(Succ(Succ(Zero))), Succ(Succ(x850)), 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_primModNatS01(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(Succ(x831)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x831))), Succ(Succ(Zero)), Succ(x831), 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))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x2), Succ(Succ(Zero))))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x473))))), Neg(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x473), Succ(Succ(Zero))))), new_gcd0Gcd'(x474, Pos(Succ(x475))) -> new_gcd0Gcd'1(False, x474, Pos(Succ(x475))) which results in the following constraint: (1) (new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x473), Succ(Succ(Zero)))))=new_gcd0Gcd'(x474, Pos(Succ(x475))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x473))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x473), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(x473)=x862 & Succ(Succ(Zero))=x863 & new_primModNatS1(x862, x863)=Succ(x475) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x473))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x473), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x862, x863)=Succ(x475) which results in the following new constraints: (3) (Succ(Zero)=Succ(x475) & Succ(x473)=Succ(Zero) & Succ(Succ(Zero))=Succ(x864) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x473))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x473), Succ(Succ(Zero)))))) (4) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x475) & Succ(x473)=Succ(Zero) & Succ(Succ(Zero))=Zero ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x473))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x473), Succ(Succ(Zero)))))) (5) (new_primModNatS1(new_primMinusNatS0(x866), Zero)=Succ(x475) & Succ(x473)=Succ(Succ(x866)) & Succ(Succ(Zero))=Zero ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x473))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x473), Succ(Succ(Zero)))))) (6) (new_primModNatS01(x868, x867, x868, x867)=Succ(x475) & Succ(x473)=Succ(Succ(x868)) & Succ(Succ(Zero))=Succ(x867) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x473))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x473), Succ(Succ(Zero)))))) We simplified constraint (3) using rules (I), (II), (III), (IV) which results in the following new constraint: (7) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(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) (x868=x869 & x867=x870 & new_primModNatS01(x868, x867, x869, x870)=Succ(x475) & Succ(Zero)=x867 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x868)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x868)), Succ(Succ(Zero)))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x868, x867, x869, x870)=Succ(x475) which results in the following new constraints: (9) (new_primModNatS02(x872, x871)=Succ(x475) & x872=Zero & x871=Zero & Succ(Zero)=x871 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x872)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x872)), Succ(Succ(Zero)))))) (10) (new_primModNatS01(x876, x875, x874, x873)=Succ(x475) & x876=Succ(x874) & x875=Succ(x873) & Succ(Zero)=x875 & (\/x877:new_primModNatS01(x876, x875, x874, x873)=Succ(x877) & x876=x874 & x875=x873 & Succ(Zero)=x875 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x876)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x876)), Succ(Succ(Zero)))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x876)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x876)), Succ(Succ(Zero)))))) (11) (new_primModNatS02(x880, x879)=Succ(x475) & x880=Succ(x878) & x879=Zero & Succ(Zero)=x879 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x880)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x880)), Succ(Succ(Zero)))))) (12) (Succ(Succ(x883))=Succ(x475) & x883=Zero & x882=Succ(x881) & Succ(Zero)=x882 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x883)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x883)), 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(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x874))))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x874))), 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(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero))), new_gcd0Gcd'(x500, Pos(Succ(x501))) -> new_gcd0Gcd'1(False, x500, Pos(Succ(x501))) which results in the following constraint: (1) (new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))=new_gcd0Gcd'(x500, Pos(Succ(x501))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(Succ(Zero)))) For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x502))))), Neg(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x502, Zero, x502, Zero))), new_gcd0Gcd'(x503, Pos(Succ(x504))) -> new_gcd0Gcd'1(False, x503, Pos(Succ(x504))) which results in the following constraint: (1) (new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x502, Zero, x502, Zero)))=new_gcd0Gcd'(x503, Pos(Succ(x504))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x502))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x502, Zero, x502, Zero)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Zero=x886 & x502=x887 & Zero=x888 & new_primModNatS01(x502, x886, x887, x888)=Succ(x504) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x502))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x502, Zero, x502, Zero)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x502, x886, x887, x888)=Succ(x504) which results in the following new constraints: (3) (new_primModNatS02(x890, x889)=Succ(x504) & Zero=x889 & x890=Zero & Zero=Zero ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x890))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x890, Zero, x890, Zero)))) (4) (new_primModNatS01(x894, x893, x892, x891)=Succ(x504) & Zero=x893 & x894=Succ(x892) & Zero=Succ(x891) & (\/x895:new_primModNatS01(x894, x893, x892, x891)=Succ(x895) & Zero=x893 & x894=x892 & Zero=x891 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x894))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x894, Zero, x894, Zero)))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x894))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x894, Zero, x894, Zero)))) (5) (new_primModNatS02(x898, x897)=Succ(x504) & Zero=x897 & x898=Succ(x896) & Zero=Zero ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x898))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x898, Zero, x898, Zero)))) (6) (Succ(Succ(x901))=Succ(x504) & Zero=x900 & x901=Zero & Zero=Succ(x899) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x901))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(x901, Zero, x901, Zero)))) We simplified constraint (3) using rules (I), (II), (III), (VII) which results in the following new constraint: (7) (Zero=x902 & new_primModNatS02(x902, x889)=Succ(x504) & Zero=x889 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, 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) (Succ(x896)=x909 & new_primModNatS02(x909, x897)=Succ(x504) & Zero=x897 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x896)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x896), Zero, Succ(x896), Zero)))) We solved constraint (6) using rules (I), (II).We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x902, x889)=Succ(x504) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x904), Succ(x903)), Succ(x903))=Succ(x504) & Zero=x904 & Zero=x903 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (10) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x909, x897)=Succ(x504) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS2(Succ(x911), Succ(x910)), Succ(x910))=Succ(x504) & Succ(x896)=x911 & Zero=x910 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x896)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x896), Zero, Succ(x896), Zero)))) We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: (12) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x896)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x896), Zero, Succ(x896), 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_primModNatS01(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(x529))))), Pos(Succ(Succ(Succ(Succ(x530)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x530))))), Pos(new_primModNatS01(Succ(Succ(x529)), Succ(Succ(x530)), x529, x530))), new_gcd0Gcd'(x531, Pos(Succ(x532))) -> new_gcd0Gcd'1(False, x531, Pos(Succ(x532))) which results in the following constraint: (1) (new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x530))))), Pos(new_primModNatS01(Succ(Succ(x529)), Succ(Succ(x530)), x529, x530)))=new_gcd0Gcd'(x531, Pos(Succ(x532))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x529))))), Pos(Succ(Succ(Succ(Succ(x530))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x530))))), Pos(new_primModNatS01(Succ(Succ(x529)), Succ(Succ(x530)), x529, x530)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(Succ(x529))=x916 & Succ(Succ(x530))=x917 & new_primModNatS01(x916, x917, x529, x530)=Succ(x532) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x529))))), Pos(Succ(Succ(Succ(Succ(x530))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x530))))), Pos(new_primModNatS01(Succ(Succ(x529)), Succ(Succ(x530)), x529, x530)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x916, x917, x529, x530)=Succ(x532) which results in the following new constraints: (3) (new_primModNatS02(x919, x918)=Succ(x532) & Succ(Succ(Zero))=x919 & Succ(Succ(Zero))=x918 ==> 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_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (4) (new_primModNatS01(x923, x922, x921, x920)=Succ(x532) & Succ(Succ(Succ(x921)))=x923 & Succ(Succ(Succ(x920)))=x922 & (\/x924:new_primModNatS01(x923, x922, x921, x920)=Succ(x924) & Succ(Succ(x921))=x923 & Succ(Succ(x920))=x922 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x921))))), Pos(Succ(Succ(Succ(Succ(x920))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x920))))), Pos(new_primModNatS01(Succ(Succ(x921)), Succ(Succ(x920)), x921, x920)))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x921)))))), Pos(Succ(Succ(Succ(Succ(Succ(x920)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(x920)))))), Pos(new_primModNatS01(Succ(Succ(Succ(x921))), Succ(Succ(Succ(x920))), Succ(x921), Succ(x920))))) (5) (new_primModNatS02(x927, x926)=Succ(x532) & Succ(Succ(Succ(x925)))=x927 & Succ(Succ(Zero))=x926 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x925)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x925))), Succ(Succ(Zero)), Succ(x925), Zero)))) (6) (Succ(Succ(x930))=Succ(x532) & Succ(Succ(Zero))=x930 & Succ(Succ(Succ(x928)))=x929 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x928)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(x928)))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x928))), Zero, Succ(x928))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x919, x918)=Succ(x532) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS2(Succ(x932), Succ(x931)), Succ(x931))=Succ(x532) & Succ(Succ(Zero))=x932 & Succ(Succ(Zero))=x931 ==> 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_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS01(x923, x922, x921, x920)=Succ(x532) & Succ(Succ(Succ(x921)))=x923 & Succ(Succ(Succ(x920)))=x922 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x921)))))), Pos(Succ(Succ(Succ(Succ(Succ(x920)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(x920)))))), Pos(new_primModNatS01(Succ(Succ(Succ(x921))), Succ(Succ(Succ(x920))), Succ(x921), Succ(x920))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x927, x926)=Succ(x532) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x951), Succ(x950)), Succ(x950))=Succ(x532) & Succ(Succ(Succ(x925)))=x951 & Succ(Succ(Zero))=x950 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x925)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x925))), Succ(Succ(Zero)), Succ(x925), 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(x928)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(x928)))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x928))), Zero, Succ(x928))))) 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(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x923, x922, x921, x920)=Succ(x532) which results in the following new constraints: (12) (new_primModNatS02(x938, x937)=Succ(x532) & Succ(Succ(Succ(Zero)))=x938 & Succ(Succ(Succ(Zero)))=x937 ==> 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_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (13) (new_primModNatS01(x942, x941, x940, x939)=Succ(x532) & Succ(Succ(Succ(Succ(x940))))=x942 & Succ(Succ(Succ(Succ(x939))))=x941 & (\/x943:new_primModNatS01(x942, x941, x940, x939)=Succ(x943) & Succ(Succ(Succ(x940)))=x942 & Succ(Succ(Succ(x939)))=x941 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x940)))))), Pos(Succ(Succ(Succ(Succ(Succ(x939)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(x939)))))), Pos(new_primModNatS01(Succ(Succ(Succ(x940))), Succ(Succ(Succ(x939))), Succ(x940), Succ(x939))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x940))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x939))))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x939))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x940)))), Succ(Succ(Succ(Succ(x939)))), Succ(Succ(x940)), Succ(Succ(x939)))))) (14) (new_primModNatS02(x946, x945)=Succ(x532) & Succ(Succ(Succ(Succ(x944))))=x946 & Succ(Succ(Succ(Zero)))=x945 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x944))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x944)))), Succ(Succ(Succ(Zero))), Succ(Succ(x944)), Succ(Zero))))) (15) (Succ(Succ(x949))=Succ(x532) & Succ(Succ(Succ(Zero)))=x949 & Succ(Succ(Succ(Succ(x947))))=x948 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x947))))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x947))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x947)))), Succ(Zero), Succ(Succ(x947)))))) 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(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), 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(x940))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x939))))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x939))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x940)))), Succ(Succ(Succ(Succ(x939)))), Succ(Succ(x940)), Succ(Succ(x939)))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x944))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x944)))), Succ(Succ(Succ(Zero))), Succ(Succ(x944)), 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(x947))))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x947))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x947)))), Succ(Zero), Succ(Succ(x947)))))) 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(Succ(x925)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x925))), Succ(Succ(Zero)), Succ(x925), 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(x581)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x581))))), Pos(Succ(Succ(Succ(Zero))))), new_gcd0Gcd'(x582, Pos(Succ(x583))) -> new_gcd0Gcd'1(False, x582, Pos(Succ(x583))) which results in the following constraint: (1) (new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x581))))), Pos(Succ(Succ(Succ(Zero)))))=new_gcd0Gcd'(x582, Pos(Succ(x583))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x581))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x581))))), 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(x581))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x581))))), Pos(Succ(Succ(Succ(Zero)))))) For Pair 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 following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x608))))), Pos(Succ(Succ(Succ(Zero))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x608), Succ(Succ(Zero))))), new_gcd0Gcd'(x609, Pos(Succ(x610))) -> new_gcd0Gcd'1(False, x609, Pos(Succ(x610))) which results in the following constraint: (1) (new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x608), Succ(Succ(Zero)))))=new_gcd0Gcd'(x609, Pos(Succ(x610))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x608))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x608), Succ(Succ(Zero)))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(x608)=x956 & Succ(Succ(Zero))=x957 & new_primModNatS1(x956, x957)=Succ(x610) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x608))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x608), Succ(Succ(Zero)))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS1(x956, x957)=Succ(x610) which results in the following new constraints: (3) (Succ(Zero)=Succ(x610) & Succ(x608)=Succ(Zero) & Succ(Succ(Zero))=Succ(x958) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x608))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x608), Succ(Succ(Zero)))))) (4) (new_primModNatS1(new_primMinusNatS1, Zero)=Succ(x610) & Succ(x608)=Succ(Zero) & Succ(Succ(Zero))=Zero ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x608))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x608), Succ(Succ(Zero)))))) (5) (new_primModNatS1(new_primMinusNatS0(x960), Zero)=Succ(x610) & Succ(x608)=Succ(Succ(x960)) & Succ(Succ(Zero))=Zero ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x608))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x608), Succ(Succ(Zero)))))) (6) (new_primModNatS01(x962, x961, x962, x961)=Succ(x610) & Succ(x608)=Succ(Succ(x962)) & Succ(Succ(Zero))=Succ(x961) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x608))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(x608), Succ(Succ(Zero)))))) We simplified constraint (3) using rules (I), (II), (III), (IV) which results in the following new constraint: (7) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(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) (x962=x963 & x961=x964 & new_primModNatS01(x962, x961, x963, x964)=Succ(x610) & Succ(Zero)=x961 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x962)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x962)), Succ(Succ(Zero)))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x962, x961, x963, x964)=Succ(x610) which results in the following new constraints: (9) (new_primModNatS02(x966, x965)=Succ(x610) & x966=Zero & x965=Zero & Succ(Zero)=x965 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x966)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x966)), Succ(Succ(Zero)))))) (10) (new_primModNatS01(x970, x969, x968, x967)=Succ(x610) & x970=Succ(x968) & x969=Succ(x967) & Succ(Zero)=x969 & (\/x971:new_primModNatS01(x970, x969, x968, x967)=Succ(x971) & x970=x968 & x969=x967 & Succ(Zero)=x969 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x970)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x970)), Succ(Succ(Zero)))))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x970)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x970)), Succ(Succ(Zero)))))) (11) (new_primModNatS02(x974, x973)=Succ(x610) & x974=Succ(x972) & x973=Zero & Succ(Zero)=x973 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x974)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x974)), Succ(Succ(Zero)))))) (12) (Succ(Succ(x977))=Succ(x610) & x977=Zero & x976=Succ(x975) & Succ(Zero)=x976 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x977)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(x977)), 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(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x968))))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x968))), 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(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero))), new_gcd0Gcd'(x635, Pos(Succ(x636))) -> new_gcd0Gcd'1(False, x635, Pos(Succ(x636))) which results in the following constraint: (1) (new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))=new_gcd0Gcd'(x635, Pos(Succ(x636))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) We simplified constraint (1) using rules (I), (II), (IV) which results in the following new constraint: (2) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(Succ(Zero)))) For Pair new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x0))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x0, Zero, x0, Zero))) the following chains were created: *We consider the chain new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x637))))), Pos(Succ(Succ(Zero)))) -> new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x637, Zero, x637, Zero))), new_gcd0Gcd'(x638, Pos(Succ(x639))) -> new_gcd0Gcd'1(False, x638, Pos(Succ(x639))) which results in the following constraint: (1) (new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x637, Zero, x637, Zero)))=new_gcd0Gcd'(x638, Pos(Succ(x639))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x637))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x637, Zero, x637, Zero)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Zero=x980 & x637=x981 & Zero=x982 & new_primModNatS01(x637, x980, x981, x982)=Succ(x639) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x637))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x637, Zero, x637, Zero)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x637, x980, x981, x982)=Succ(x639) which results in the following new constraints: (3) (new_primModNatS02(x984, x983)=Succ(x639) & Zero=x983 & x984=Zero & Zero=Zero ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x984))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x984, Zero, x984, Zero)))) (4) (new_primModNatS01(x988, x987, x986, x985)=Succ(x639) & Zero=x987 & x988=Succ(x986) & Zero=Succ(x985) & (\/x989:new_primModNatS01(x988, x987, x986, x985)=Succ(x989) & Zero=x987 & x988=x986 & Zero=x985 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x988))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x988, Zero, x988, Zero)))) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x988))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x988, Zero, x988, Zero)))) (5) (new_primModNatS02(x992, x991)=Succ(x639) & Zero=x991 & x992=Succ(x990) & Zero=Zero ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x992))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x992, Zero, x992, Zero)))) (6) (Succ(Succ(x995))=Succ(x639) & Zero=x994 & x995=Zero & Zero=Succ(x993) ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x995))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(x995, Zero, x995, Zero)))) We simplified constraint (3) using rules (I), (II), (III), (VII) which results in the following new constraint: (7) (Zero=x996 & new_primModNatS02(x996, x983)=Succ(x639) & Zero=x983 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, 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) (Succ(x990)=x1003 & new_primModNatS02(x1003, x991)=Succ(x639) & Zero=x991 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x990)))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x990), Zero, Succ(x990), Zero)))) We solved constraint (6) using rules (I), (II).We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x996, x983)=Succ(x639) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x998), Succ(x997)), Succ(x997))=Succ(x639) & Zero=x998 & Zero=x997 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) We simplified constraint (9) using rules (III), (IV), (VII) which results in the following new constraint: (10) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1003, x991)=Succ(x639) which results in the following new constraint: (11) (new_primModNatS1(new_primMinusNatS2(Succ(x1005), Succ(x1004)), Succ(x1004))=Succ(x639) & Succ(x990)=x1005 & Zero=x1004 ==> new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x990)))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x990), Zero, Succ(x990), Zero)))) We simplified constraint (11) using rules (III), (IV), (VII) which results in the following new constraint: (12) (new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x990)))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x990), Zero, Succ(x990), 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_primModNatS01(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(x674))))), Pos(Succ(Succ(Succ(Succ(x675)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x675))))), Neg(new_primModNatS01(Succ(Succ(x674)), Succ(Succ(x675)), x674, x675))), new_gcd0Gcd'(x676, Neg(Succ(x677))) -> new_gcd0Gcd'1(False, x676, Neg(Succ(x677))) which results in the following constraint: (1) (new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x675))))), Neg(new_primModNatS01(Succ(Succ(x674)), Succ(Succ(x675)), x674, x675)))=new_gcd0Gcd'(x676, Neg(Succ(x677))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x674))))), Pos(Succ(Succ(Succ(Succ(x675))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x675))))), Neg(new_primModNatS01(Succ(Succ(x674)), Succ(Succ(x675)), x674, x675)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(Succ(x674))=x1010 & Succ(Succ(x675))=x1011 & new_primModNatS01(x1010, x1011, x674, x675)=Succ(x677) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x674))))), Pos(Succ(Succ(Succ(Succ(x675))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x675))))), Neg(new_primModNatS01(Succ(Succ(x674)), Succ(Succ(x675)), x674, x675)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1010, x1011, x674, x675)=Succ(x677) which results in the following new constraints: (3) (new_primModNatS02(x1013, x1012)=Succ(x677) & Succ(Succ(Zero))=x1013 & Succ(Succ(Zero))=x1012 ==> 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_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (4) (new_primModNatS01(x1017, x1016, x1015, x1014)=Succ(x677) & Succ(Succ(Succ(x1015)))=x1017 & Succ(Succ(Succ(x1014)))=x1016 & (\/x1018:new_primModNatS01(x1017, x1016, x1015, x1014)=Succ(x1018) & Succ(Succ(x1015))=x1017 & Succ(Succ(x1014))=x1016 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x1015))))), Pos(Succ(Succ(Succ(Succ(x1014))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x1014))))), Neg(new_primModNatS01(Succ(Succ(x1015)), Succ(Succ(x1014)), x1015, x1014)))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x1015)))))), Pos(Succ(Succ(Succ(Succ(Succ(x1014)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(x1014)))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1015))), Succ(Succ(Succ(x1014))), Succ(x1015), Succ(x1014))))) (5) (new_primModNatS02(x1021, x1020)=Succ(x677) & Succ(Succ(Succ(x1019)))=x1021 & Succ(Succ(Zero))=x1020 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x1019)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1019))), Succ(Succ(Zero)), Succ(x1019), Zero)))) (6) (Succ(Succ(x1024))=Succ(x677) & Succ(Succ(Zero))=x1024 & Succ(Succ(Succ(x1022)))=x1023 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x1022)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(x1022)))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1022))), Zero, Succ(x1022))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1013, x1012)=Succ(x677) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS2(Succ(x1026), Succ(x1025)), Succ(x1025))=Succ(x677) & Succ(Succ(Zero))=x1026 & Succ(Succ(Zero))=x1025 ==> 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_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS01(x1017, x1016, x1015, x1014)=Succ(x677) & Succ(Succ(Succ(x1015)))=x1017 & Succ(Succ(Succ(x1014)))=x1016 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x1015)))))), Pos(Succ(Succ(Succ(Succ(Succ(x1014)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(x1014)))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1015))), Succ(Succ(Succ(x1014))), Succ(x1015), Succ(x1014))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1021, x1020)=Succ(x677) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x1045), Succ(x1044)), Succ(x1044))=Succ(x677) & Succ(Succ(Succ(x1019)))=x1045 & Succ(Succ(Zero))=x1044 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x1019)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1019))), Succ(Succ(Zero)), Succ(x1019), 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(x1022)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(x1022)))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1022))), Zero, Succ(x1022))))) 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(Zero))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1017, x1016, x1015, x1014)=Succ(x677) which results in the following new constraints: (12) (new_primModNatS02(x1032, x1031)=Succ(x677) & Succ(Succ(Succ(Zero)))=x1032 & Succ(Succ(Succ(Zero)))=x1031 ==> 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_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (13) (new_primModNatS01(x1036, x1035, x1034, x1033)=Succ(x677) & Succ(Succ(Succ(Succ(x1034))))=x1036 & Succ(Succ(Succ(Succ(x1033))))=x1035 & (\/x1037:new_primModNatS01(x1036, x1035, x1034, x1033)=Succ(x1037) & Succ(Succ(Succ(x1034)))=x1036 & Succ(Succ(Succ(x1033)))=x1035 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x1034)))))), Pos(Succ(Succ(Succ(Succ(Succ(x1033)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(x1033)))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1034))), Succ(Succ(Succ(x1033))), Succ(x1034), Succ(x1033))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1034))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1033))))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1033))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x1034)))), Succ(Succ(Succ(Succ(x1033)))), Succ(Succ(x1034)), Succ(Succ(x1033)))))) (14) (new_primModNatS02(x1040, x1039)=Succ(x677) & Succ(Succ(Succ(Succ(x1038))))=x1040 & Succ(Succ(Succ(Zero)))=x1039 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1038))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x1038)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1038)), Succ(Zero))))) (15) (Succ(Succ(x1043))=Succ(x677) & Succ(Succ(Succ(Zero)))=x1043 & Succ(Succ(Succ(Succ(x1041))))=x1042 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1041))))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1041))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1041)))), Succ(Zero), Succ(Succ(x1041)))))) 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(Zero)))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), 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(x1034))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1033))))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1033))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x1034)))), Succ(Succ(Succ(Succ(x1033)))), Succ(Succ(x1034)), Succ(Succ(x1033)))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1038))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x1038)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1038)), 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(x1041))))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1041))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1041)))), Succ(Zero), Succ(Succ(x1041)))))) 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(Succ(x1019)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1019))), Succ(Succ(Zero)), Succ(x1019), 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(x721)))))) -> new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x721))))), Neg(Succ(Succ(Succ(Zero))))), new_gcd0Gcd'(x722, Neg(Succ(x723))) -> new_gcd0Gcd'1(False, x722, Neg(Succ(x723))) which results in the following constraint: (1) (new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x721))))), Neg(Succ(Succ(Succ(Zero)))))=new_gcd0Gcd'(x722, Neg(Succ(x723))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x721))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x721))))), 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(x721))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x721))))), Neg(Succ(Succ(Succ(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_primModNatS01(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(x753))))), Neg(Succ(Succ(Succ(Succ(x754)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x754))))), Neg(new_primModNatS01(Succ(Succ(x753)), Succ(Succ(x754)), x753, x754))), new_gcd0Gcd'(x755, Neg(Succ(x756))) -> new_gcd0Gcd'1(False, x755, Neg(Succ(x756))) which results in the following constraint: (1) (new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x754))))), Neg(new_primModNatS01(Succ(Succ(x753)), Succ(Succ(x754)), x753, x754)))=new_gcd0Gcd'(x755, Neg(Succ(x756))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x753))))), Neg(Succ(Succ(Succ(Succ(x754))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x754))))), Neg(new_primModNatS01(Succ(Succ(x753)), Succ(Succ(x754)), x753, x754)))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Succ(Succ(x753))=x1050 & Succ(Succ(x754))=x1051 & new_primModNatS01(x1050, x1051, x753, x754)=Succ(x756) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x753))))), Neg(Succ(Succ(Succ(Succ(x754))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x754))))), Neg(new_primModNatS01(Succ(Succ(x753)), Succ(Succ(x754)), x753, x754)))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1050, x1051, x753, x754)=Succ(x756) which results in the following new constraints: (3) (new_primModNatS02(x1053, x1052)=Succ(x756) & Succ(Succ(Zero))=x1053 & Succ(Succ(Zero))=x1052 ==> 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_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) (4) (new_primModNatS01(x1057, x1056, x1055, x1054)=Succ(x756) & Succ(Succ(Succ(x1055)))=x1057 & Succ(Succ(Succ(x1054)))=x1056 & (\/x1058:new_primModNatS01(x1057, x1056, x1055, x1054)=Succ(x1058) & Succ(Succ(x1055))=x1057 & Succ(Succ(x1054))=x1056 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x1055))))), Neg(Succ(Succ(Succ(Succ(x1054))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x1054))))), Neg(new_primModNatS01(Succ(Succ(x1055)), Succ(Succ(x1054)), x1055, x1054)))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x1055)))))), Neg(Succ(Succ(Succ(Succ(Succ(x1054)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(x1054)))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1055))), Succ(Succ(Succ(x1054))), Succ(x1055), Succ(x1054))))) (5) (new_primModNatS02(x1061, x1060)=Succ(x756) & Succ(Succ(Succ(x1059)))=x1061 & Succ(Succ(Zero))=x1060 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x1059)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1059))), Succ(Succ(Zero)), Succ(x1059), Zero)))) (6) (Succ(Succ(x1064))=Succ(x756) & Succ(Succ(Zero))=x1064 & Succ(Succ(Succ(x1062)))=x1063 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x1062)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(x1062)))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1062))), Zero, Succ(x1062))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1053, x1052)=Succ(x756) which results in the following new constraint: (7) (new_primModNatS1(new_primMinusNatS2(Succ(x1066), Succ(x1065)), Succ(x1065))=Succ(x756) & Succ(Succ(Zero))=x1066 & Succ(Succ(Zero))=x1065 ==> 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_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS01(x1057, x1056, x1055, x1054)=Succ(x756) & Succ(Succ(Succ(x1055)))=x1057 & Succ(Succ(Succ(x1054)))=x1056 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x1055)))))), Neg(Succ(Succ(Succ(Succ(Succ(x1054)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(x1054)))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1055))), Succ(Succ(Succ(x1054))), Succ(x1055), Succ(x1054))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x1061, x1060)=Succ(x756) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x1085), Succ(x1084)), Succ(x1084))=Succ(x756) & Succ(Succ(Succ(x1059)))=x1085 & Succ(Succ(Zero))=x1084 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x1059)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1059))), Succ(Succ(Zero)), Succ(x1059), 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(x1062)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(x1062)))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1062))), Zero, Succ(x1062))))) 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(Zero))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x1057, x1056, x1055, x1054)=Succ(x756) which results in the following new constraints: (12) (new_primModNatS02(x1072, x1071)=Succ(x756) & Succ(Succ(Succ(Zero)))=x1072 & Succ(Succ(Succ(Zero)))=x1071 ==> 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_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) (13) (new_primModNatS01(x1076, x1075, x1074, x1073)=Succ(x756) & Succ(Succ(Succ(Succ(x1074))))=x1076 & Succ(Succ(Succ(Succ(x1073))))=x1075 & (\/x1077:new_primModNatS01(x1076, x1075, x1074, x1073)=Succ(x1077) & Succ(Succ(Succ(x1074)))=x1076 & Succ(Succ(Succ(x1073)))=x1075 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x1074)))))), Neg(Succ(Succ(Succ(Succ(Succ(x1073)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(x1073)))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1074))), Succ(Succ(Succ(x1073))), Succ(x1074), Succ(x1073))))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1074))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1073))))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1073))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x1074)))), Succ(Succ(Succ(Succ(x1073)))), Succ(Succ(x1074)), Succ(Succ(x1073)))))) (14) (new_primModNatS02(x1080, x1079)=Succ(x756) & Succ(Succ(Succ(Succ(x1078))))=x1080 & Succ(Succ(Succ(Zero)))=x1079 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1078))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x1078)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1078)), Succ(Zero))))) (15) (Succ(Succ(x1083))=Succ(x756) & Succ(Succ(Succ(Zero)))=x1083 & Succ(Succ(Succ(Succ(x1081))))=x1082 ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1081))))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1081))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1081)))), Succ(Zero), Succ(Succ(x1081)))))) 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(Zero)))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), 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(x1074))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1073))))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1073))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x1074)))), Succ(Succ(Succ(Succ(x1073)))), Succ(Succ(x1074)), Succ(Succ(x1073)))))) We simplified constraint (14) using rules (III), (IV) which results in the following new constraint: (18) (new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1078))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x1078)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1078)), 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(x1081))))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1081))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1081)))), Succ(Zero), Succ(Succ(x1081)))))) 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(Succ(x1059)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1059))), Succ(Succ(Zero)), Succ(x1059), 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(x800)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x800))))), Neg(Succ(Succ(Succ(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(Succ(Succ(x800))))), Neg(Succ(Succ(Succ(Zero)))))=new_gcd0Gcd'(x801, Neg(Succ(x802))) ==> new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x800))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x800))))), 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(x800))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x800))))), Neg(Succ(Succ(Succ(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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) *(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))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x91))))), Neg(Succ(Succ(Succ(Zero)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x96))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x96))))), Neg(Succ(Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x99))))), Pos(Succ(Succ(Succ(Succ(x100))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x99))))), Pos(Succ(Succ(Succ(Succ(x100))))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x103))))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x106))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x106))))), Pos(Succ(Succ(Succ(Zero)))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Zero))))) *(new_gcd0Gcd'1(False, Pos(Succ(Succ(Succ(Succ(x111))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(x111))))), Pos(Succ(Succ(Zero))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x114))))), Pos(Succ(Succ(Succ(Succ(x115))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x114))))), Pos(Succ(Succ(Succ(Succ(x115))))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x118))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Pos(Succ(Succ(Succ(Succ(x118))))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Succ(x121))))), Neg(Succ(Succ(Succ(Succ(x122))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(x121))))), Neg(Succ(Succ(Succ(Succ(x122))))))) *(new_gcd0Gcd'1(False, Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x125))))))_>=_new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Zero)))), Neg(Succ(Succ(Succ(Succ(x125))))))) *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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x834))), Zero, Succ(x834))))) *(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_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *(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_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x846))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x845))))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x845))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x846)))), Succ(Succ(Succ(Succ(x845)))), Succ(Succ(x846)), Succ(Succ(x845)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x850))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x850)))), Succ(Succ(Succ(Zero))), Succ(Succ(x850)), Succ(Zero))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x831)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x831))), Succ(Succ(Zero)), Succ(x831), 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))))), 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(Zero))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x874))))))), Neg(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x874))), 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(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_primModNatS01(x0, Zero, x0, Zero))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x896)))))), Neg(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x896), Zero, Succ(x896), 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_primModNatS01(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(x947))))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x947))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x947)))), Succ(Zero), Succ(Succ(x947)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x928)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(x928)))))), Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x928))), Zero, Succ(x928))))) *(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_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *(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_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x940))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x939))))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x939))))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x940)))), Succ(Succ(Succ(Succ(x939)))), Succ(Succ(x940)), Succ(Succ(x939)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x944))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(new_primModNatS01(Succ(Succ(Succ(Succ(x944)))), Succ(Succ(Succ(Zero))), Succ(Succ(x944)), Succ(Zero))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x925)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(new_primModNatS01(Succ(Succ(Succ(x925))), Succ(Succ(Zero)), Succ(x925), 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(x581))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x581))))), 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(Succ(Zero))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Zero), Succ(Succ(Zero)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Succ(Zero)))))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x968))))))), Pos(Succ(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Zero)))), Pos(new_primModNatS1(Succ(Succ(Succ(x968))), 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(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_primModNatS01(x0, Zero, x0, Zero))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Zero, Zero, Zero, Zero)))) *(new_gcd0Gcd'0(Pos(Succ(Succ(Succ(Succ(Succ(x990)))))), Pos(Succ(Succ(Zero))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Zero))), Pos(new_primModNatS01(Succ(x990), Zero, Succ(x990), 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_primModNatS01(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(x1041))))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1041))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1041)))), Succ(Zero), Succ(Succ(x1041)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Pos(Succ(Succ(Succ(Succ(Succ(x1022)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(x1022)))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1022))), Zero, Succ(x1022))))) *(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_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *(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_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1034))))))), Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1033))))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Succ(x1033))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x1034)))), Succ(Succ(Succ(Succ(x1033)))), Succ(Succ(x1034)), Succ(Succ(x1033)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1038))))))), Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x1038)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1038)), Succ(Zero))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x1019)))))), Pos(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1019))), Succ(Succ(Zero)), Succ(x1019), 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(x721))))))_>=_new_gcd0Gcd'(Pos(Succ(Succ(Succ(Succ(x721))))), Neg(Succ(Succ(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_primModNatS01(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(x1081))))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1081))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Succ(x1081)))), Succ(Zero), Succ(Succ(x1081)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(Succ(Succ(Succ(Succ(Succ(x1062)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(x1062)))))), Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Succ(x1062))), Zero, Succ(x1062))))) *(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_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Zero, Zero)))) *(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_primModNatS01(Succ(Succ(Succ(Zero))), Succ(Succ(Succ(Zero))), Succ(Zero), Succ(Zero))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1074))))))), Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1073))))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1073))))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x1074)))), Succ(Succ(Succ(Succ(x1073)))), Succ(Succ(x1074)), Succ(Succ(x1073)))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(Succ(x1078))))))), Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Succ(Zero)))))), Neg(new_primModNatS01(Succ(Succ(Succ(Succ(x1078)))), Succ(Succ(Succ(Zero))), Succ(Succ(x1078)), Succ(Zero))))) *(new_gcd0Gcd'0(Neg(Succ(Succ(Succ(Succ(Succ(x1059)))))), Neg(Succ(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(Zero))))), Neg(new_primModNatS01(Succ(Succ(Succ(x1059))), Succ(Succ(Zero)), Succ(x1059), 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(x800))))))_>=_new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x800))))), 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. ---------------------------------------- (326) 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, vuz56, vuz55) -> new_gcd0Gcd'0(vuz56, vuz55) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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))))), Neg(Succ(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'(Neg(Succ(Succ(Succ(Succ(x3))))), Neg(new_primModNatS01(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))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (327) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS(Succ(Succ(vuz31000)), Succ(vuz49000)) -> new_primDivNatS0(vuz31000, vuz49000, vuz31000, vuz49000) new_primDivNatS0(vuz78, vuz79, Zero, Zero) -> new_primDivNatS00(vuz78, vuz79) new_primDivNatS(Succ(Succ(vuz31000)), Zero) -> new_primDivNatS(new_primMinusNatS0(vuz31000), Zero) new_primDivNatS0(vuz78, vuz79, Succ(vuz800), Zero) -> new_primDivNatS(new_primMinusNatS3(vuz78, vuz79), Succ(vuz79)) new_primDivNatS0(vuz78, vuz79, Succ(vuz800), Succ(vuz810)) -> new_primDivNatS0(vuz78, vuz79, vuz800, vuz810) new_primDivNatS00(vuz78, vuz79) -> new_primDivNatS(new_primMinusNatS3(vuz78, vuz79), Succ(vuz79)) new_primDivNatS(Succ(Zero), Zero) -> new_primDivNatS(new_primMinusNatS1, Zero) The TRS R consists of the following rules: new_primMinusNatS3(vuz78, vuz79) -> new_primMinusNatS2(vuz78, vuz79) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS3(x0, x1) new_primMinusNatS2(Zero, Zero) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (328) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (329) Complex Obligation (AND) ---------------------------------------- (330) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS(Succ(Succ(vuz31000)), Zero) -> new_primDivNatS(new_primMinusNatS0(vuz31000), Zero) The TRS R consists of the following rules: new_primMinusNatS3(vuz78, vuz79) -> new_primMinusNatS2(vuz78, vuz79) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS3(x0, x1) new_primMinusNatS2(Zero, Zero) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (331) 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(vuz31000)), Zero) -> new_primDivNatS(new_primMinusNatS0(vuz31000), Zero) Strictly oriented rules of the TRS R: new_primMinusNatS3(vuz78, vuz79) -> new_primMinusNatS2(vuz78, vuz79) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Succ(vuz790)) -> 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 ---------------------------------------- (332) Obligation: Q DP problem: P is empty. The TRS R consists of the following rules: new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS3(x0, x1) new_primMinusNatS2(Zero, Zero) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (333) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (334) YES ---------------------------------------- (335) Obligation: Q DP problem: The TRS P consists of the following rules: new_primDivNatS0(vuz78, vuz79, Zero, Zero) -> new_primDivNatS00(vuz78, vuz79) new_primDivNatS00(vuz78, vuz79) -> new_primDivNatS(new_primMinusNatS3(vuz78, vuz79), Succ(vuz79)) new_primDivNatS(Succ(Succ(vuz31000)), Succ(vuz49000)) -> new_primDivNatS0(vuz31000, vuz49000, vuz31000, vuz49000) new_primDivNatS0(vuz78, vuz79, Succ(vuz800), Zero) -> new_primDivNatS(new_primMinusNatS3(vuz78, vuz79), Succ(vuz79)) new_primDivNatS0(vuz78, vuz79, Succ(vuz800), Succ(vuz810)) -> new_primDivNatS0(vuz78, vuz79, vuz800, vuz810) The TRS R consists of the following rules: new_primMinusNatS3(vuz78, vuz79) -> new_primMinusNatS2(vuz78, vuz79) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS3(x0, x1) new_primMinusNatS2(Zero, Zero) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS1 new_primMinusNatS0(x0) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (336) 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(vuz78, vuz79) -> new_primDivNatS(new_primMinusNatS3(vuz78, vuz79), Succ(vuz79)) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1 *new_primDivNatS(Succ(Succ(vuz31000)), Succ(vuz49000)) -> new_primDivNatS0(vuz31000, vuz49000, vuz31000, vuz49000) (allowed arguments on rhs = {1, 2, 3, 4}) The graph contains the following edges 1 > 1, 2 > 2, 1 > 3, 2 > 4 *new_primDivNatS0(vuz78, vuz79, Succ(vuz800), Succ(vuz810)) -> new_primDivNatS0(vuz78, vuz79, vuz800, vuz810) (allowed arguments on rhs = {1, 2, 3, 4}) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 > 4 *new_primDivNatS0(vuz78, vuz79, Zero, Zero) -> new_primDivNatS00(vuz78, vuz79) (allowed arguments on rhs = {1, 2}) The graph contains the following edges 1 >= 1, 2 >= 2 *new_primDivNatS0(vuz78, vuz79, Succ(vuz800), Zero) -> new_primDivNatS(new_primMinusNatS3(vuz78, vuz79), Succ(vuz79)) (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(vuz78, vuz79) -> new_primMinusNatS2(vuz78, vuz79) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) ---------------------------------------- (337) YES ---------------------------------------- (338) Obligation: Q DP problem: The TRS P consists of the following rules: new_primMulNat(Succ(vuz1000), Succ(vuz3000)) -> new_primMulNat(vuz1000, Succ(vuz3000)) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (339) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_primMulNat(Succ(vuz1000), Succ(vuz3000)) -> new_primMulNat(vuz1000, Succ(vuz3000)) The graph contains the following edges 1 > 1, 2 >= 2 ---------------------------------------- (340) YES ---------------------------------------- (341) Obligation: Q DP problem: The TRS P consists of the following rules: new_enforceWHNF(vuz7, :(vuz80, vuz81), h) -> new_enforceWHNF(new_sr(vuz7, vuz80, h), vuz81, h) The TRS R consists of the following rules: new_primPlusNat0(Zero, Zero) -> Zero new_gcd0Gcd'12(False, vuz59, vuz60) -> new_gcd0Gcd'01(vuz59, new_rem(vuz60, vuz59)) new_sr0(Float(vuz120, vuz121), Float(vuz300, vuz301)) -> Float(new_sr1(vuz120, vuz300), new_sr1(vuz121, vuz301)) new_primMulInt(Pos(vuz100), Neg(vuz300)) -> Neg(new_primMulNat0(vuz100, vuz300)) new_primMulInt(Neg(vuz100), Pos(vuz300)) -> Neg(new_primMulNat0(vuz100, vuz300)) new_primQuotInt1(Pos(vuz2800), Neg(Succ(vuz45000))) -> Neg(new_primDivNatS1(vuz2800, vuz45000)) new_primQuotInt1(Neg(vuz2800), Pos(Succ(vuz45000))) -> Neg(new_primDivNatS1(vuz2800, vuz45000)) new_primDivNatS1(Zero, vuz4900) -> Zero new_quot1(vuz20, vuz21, vuz22, vuz23, ty_Integer) -> new_quot(new_sr4(vuz20, vuz21), new_sr4(vuz20, vuz21), new_sr4(vuz22, vuz23)) new_gcd0(vuz33, vuz32) -> new_gcd0Gcd'2(new_abs0(vuz33), new_abs0(vuz32)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primDivNatS01(vuz78, vuz79, Succ(vuz800), Zero) -> new_primDivNatS02(vuz78, vuz79) new_primDivNatS1(Succ(Succ(vuz31000)), Zero) -> Succ(new_primDivNatS1(new_primMinusNatS0(vuz31000), Zero)) new_primQuotInt4(vuz310, True, vuz33, vuz32) -> new_primQuotInt(vuz310, new_esEs(vuz32), vuz33, vuz32) new_abs0(Neg(Zero)) -> Neg(Zero) new_gcd10(True, vuz30, vuz29) -> error([]) new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_gcd0Gcd'13(True, vuz56, vuz55) -> vuz56 new_primEqInt(Pos(Succ(vuz26000))) -> False new_esEs1(vuz111, vuz301, ty_Int) -> new_esEs(new_sr1(vuz111, vuz301)) new_primQuotInt3(vuz310, Neg(Zero)) -> new_error new_abs(Integer(Pos(Succ(vuz29000)))) -> Integer(Pos(Succ(vuz29000))) new_gcd1(True, vuz33, vuz32) -> new_error new_primQuotInt3(vuz310, Pos(Succ(vuz4900))) -> Pos(new_primDivNatS1(vuz310, vuz4900)) new_esEs1(vuz111, vuz301, ty_Integer) -> new_esEs0(new_sr4(vuz111, vuz301)) new_gcd2(False, vuz30, vuz29) -> new_gcd00(vuz30, vuz29) new_gcd2(True, vuz30, vuz29) -> new_gcd10(new_esEs0(vuz29), vuz30, vuz29) new_gcd0Gcd'02(vuz53, vuz52) -> new_gcd0Gcd'2(vuz52, new_primRemInt(vuz53, vuz52)) new_primQuotInt(vuz310, False, vuz33, vuz32) -> new_primQuotInt0(vuz310, vuz33, vuz32) new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primDivNatS02(vuz78, vuz79) -> Succ(new_primDivNatS1(new_primMinusNatS3(vuz78, vuz79), Succ(vuz79))) new_gcd20(False, vuz33, vuz32) -> new_gcd0(vuz33, vuz32) new_primMinusNatS1 -> Zero new_abs(Integer(Neg(Zero))) -> Integer(Neg(Zero)) new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primDivNatS01(vuz78, vuz79, Zero, Succ(vuz810)) -> Zero new_primPlusNat0(Succ(vuz2700), Succ(vuz30000)) -> Succ(Succ(new_primPlusNat0(vuz2700, vuz30000))) new_primMulNat0(Succ(vuz1000), Succ(vuz3000)) -> new_primPlusNat1(new_primMulNat0(vuz1000, Succ(vuz3000)), vuz3000) new_primRemInt(Pos(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_gcd1(False, vuz33, vuz32) -> new_gcd0(vuz33, vuz32) new_primDivNatS1(Succ(Zero), Succ(vuz49000)) -> Zero new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primQuotInt2(vuz310, False, vuz33, vuz32) -> new_primQuotInt1(Neg(vuz310), new_gcd0Gcd'02(new_abs0(vuz33), new_abs0(vuz32))) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primMulInt(Pos(vuz100), Pos(vuz300)) -> Pos(new_primMulNat0(vuz100, vuz300)) new_sr(vuz7, vuz80, app(ty_Ratio, ba)) -> new_sr3(vuz7, vuz80, ba) new_esEs(Neg(Zero)) -> new_primEqInt(Neg(Zero)) new_primQuotInt1(Neg(vuz2800), Neg(Succ(vuz45000))) -> Pos(new_primDivNatS1(vuz2800, vuz45000)) new_sr2(Double(vuz90, vuz91), Double(vuz300, vuz301)) -> Double(new_sr1(vuz90, vuz300), new_sr1(vuz91, vuz301)) new_gcd0Gcd'11(False, vuz30, vuz29) -> new_gcd0Gcd'01(new_abs(vuz30), new_abs(vuz29)) new_esEs(Pos(Succ(vuz2500))) -> new_primEqInt(Pos(Succ(vuz2500))) new_gcd0Gcd'11(True, vuz30, vuz29) -> new_abs(vuz30) new_sr3(:%(vuz110, vuz111), :%(vuz300, vuz301), bb) -> new_reduce2Reduce1(vuz110, vuz300, vuz111, vuz301, new_esEs1(vuz111, vuz301, bb), bb) new_gcd00(vuz30, vuz29) -> new_gcd0Gcd'11(new_esEs0(new_abs(vuz29)), vuz30, vuz29) new_gcd10(False, vuz30, vuz29) -> new_gcd00(vuz30, vuz29) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_esEs(Pos(Zero)) -> new_primEqInt(Pos(Zero)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_abs0(Pos(Succ(vuz3200))) -> Pos(Succ(vuz3200)) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_reduce2Reduce1(vuz20, vuz21, vuz22, vuz23, False, bc) -> :%(new_quot1(vuz20, vuz21, vuz22, vuz23, bc), new_quot2(vuz22, vuz23, vuz20, vuz21, bc)) new_primMulNat0(Succ(vuz1000), Zero) -> Zero new_primMulNat0(Zero, Succ(vuz3000)) -> Zero new_quot2(vuz22, vuz23, vuz20, vuz21, ty_Int) -> new_quot3(new_sr1(vuz22, vuz23), new_sr1(vuz20, vuz21), new_sr1(vuz22, vuz23)) new_primPlusNat1(Succ(vuz270), vuz3000) -> Succ(Succ(new_primPlusNat0(vuz270, vuz3000))) new_gcd0Gcd'12(True, vuz59, vuz60) -> vuz59 new_primDivNatS01(vuz78, vuz79, Succ(vuz800), Succ(vuz810)) -> new_primDivNatS01(vuz78, vuz79, vuz800, vuz810) new_primQuotInt1(Pos(vuz2800), Neg(Zero)) -> new_error new_primQuotInt1(Neg(vuz2800), Pos(Zero)) -> new_error new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_gcd0Gcd'13(False, vuz56, vuz55) -> new_gcd0Gcd'02(vuz56, vuz55) new_primPlusNat0(Succ(vuz2700), Zero) -> Succ(vuz2700) new_primPlusNat0(Zero, Succ(vuz30000)) -> Succ(vuz30000) new_primMulNat0(Zero, Zero) -> Zero new_primPlusNat1(Zero, vuz3000) -> Succ(vuz3000) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_quot0(vuz280, Integer(vuz450)) -> Integer(new_primQuotInt1(vuz280, vuz450)) new_primMinusNatS3(vuz78, vuz79) -> new_primMinusNatS2(vuz78, vuz79) new_abs(Integer(Pos(Zero))) -> Integer(Pos(Zero)) new_esEs(Neg(Succ(vuz2500))) -> new_primEqInt(Neg(Succ(vuz2500))) new_sr(vuz7, vuz80, ty_Integer) -> new_sr4(vuz7, vuz80) new_rem(Integer(vuz600), Integer(vuz590)) -> Integer(new_primRemInt(vuz600, vuz590)) new_quot3(Pos(vuz310), vuz33, vuz32) -> new_primQuotInt3(vuz310, new_gcd20(new_esEs(vuz33), vuz33, vuz32)) new_primEqInt(Pos(Zero)) -> True new_sr(vuz7, vuz80, ty_Double) -> new_sr2(vuz7, vuz80) new_sr(vuz7, vuz80, ty_Int) -> new_sr1(vuz7, vuz80) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_abs0(Pos(Zero)) -> Pos(Zero) new_primDivNatS1(Succ(Succ(vuz31000)), Succ(vuz49000)) -> new_primDivNatS01(vuz31000, vuz49000, vuz31000, vuz49000) new_esEs0(Integer(vuz260)) -> new_primEqInt(vuz260) new_sr1(vuz10, vuz30) -> new_primMulInt(vuz10, vuz30) new_sr4(Integer(vuz130), Integer(vuz300)) -> Integer(new_primMulInt(vuz130, vuz300)) new_primQuotInt4(vuz310, False, vuz33, vuz32) -> new_primQuotInt0(vuz310, vuz33, vuz32) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primQuotInt1(Neg(vuz2800), Neg(Zero)) -> new_error new_abs0(Neg(Succ(vuz3200))) -> new_primNegInt(vuz3200) new_reduce2Reduce1(vuz20, vuz21, vuz22, vuz23, True, bc) -> error([]) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_quot1(vuz20, vuz21, vuz22, vuz23, ty_Int) -> new_quot3(new_sr1(vuz20, vuz21), new_sr1(vuz20, vuz21), new_sr1(vuz22, vuz23)) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primQuotInt1(Pos(vuz2800), Pos(Zero)) -> new_error new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_gcd0Gcd'01(vuz60, vuz59) -> new_gcd0Gcd'12(new_esEs0(new_rem(vuz60, vuz59)), vuz59, vuz60) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primQuotInt1(Pos(vuz2800), Pos(Succ(vuz45000))) -> Pos(new_primDivNatS1(vuz2800, vuz45000)) new_primMulInt(Neg(vuz100), Neg(vuz300)) -> Pos(new_primMulNat0(vuz100, vuz300)) new_abs(Integer(Neg(Succ(vuz29000)))) -> Integer(new_primNegInt(vuz29000)) new_gcd0Gcd'2(vuz56, vuz55) -> new_gcd0Gcd'13(new_esEs(vuz55), vuz56, vuz55) new_primQuotInt0(vuz310, vuz33, vuz32) -> new_primQuotInt2(vuz310, new_esEs(new_abs0(vuz32)), vuz33, vuz32) new_primDivNatS1(Succ(Zero), Zero) -> Succ(new_primDivNatS1(new_primMinusNatS1, Zero)) new_primModNatS1(Zero, vuz5200) -> Zero new_quot(Integer(vuz280), vuz30, vuz29) -> new_quot0(vuz280, new_gcd2(new_esEs0(vuz30), vuz30, vuz29)) new_error -> error([]) new_primQuotInt3(vuz310, Pos(Zero)) -> new_error new_primEqInt(Neg(Succ(vuz26000))) -> False new_gcd20(True, vuz33, vuz32) -> new_gcd1(new_esEs(vuz32), vuz33, vuz32) new_primQuotInt2(vuz310, True, vuz33, vuz32) -> new_primQuotInt1(Neg(vuz310), new_abs0(vuz33)) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primDivNatS01(vuz78, vuz79, Zero, Zero) -> new_primDivNatS02(vuz78, vuz79) new_primQuotInt3(vuz310, Neg(Succ(vuz4900))) -> Neg(new_primDivNatS1(vuz310, vuz4900)) new_quot2(vuz22, vuz23, vuz20, vuz21, ty_Integer) -> new_quot(new_sr4(vuz22, vuz23), new_sr4(vuz20, vuz21), new_sr4(vuz22, vuz23)) new_sr(vuz7, vuz80, ty_Float) -> new_sr0(vuz7, vuz80) new_primQuotInt(vuz310, True, vuz33, vuz32) -> error([]) new_primNegInt(vuz3200) -> Pos(Succ(vuz3200)) new_quot3(Neg(vuz310), vuz33, vuz32) -> new_primQuotInt4(vuz310, new_esEs(vuz33), vuz33, vuz32) The set Q consists of the following terms: new_primMinusNatS2(Zero, Succ(x0)) new_abs(Integer(Pos(Zero))) new_primEqInt(Neg(Succ(x0))) new_abs(Integer(Neg(Zero))) new_sr(x0, x1, app(ty_Ratio, x2)) new_primEqInt(Pos(Zero)) new_primPlusNat0(Succ(x0), Zero) new_quot(Integer(x0), x1, x2) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primQuotInt1(Neg(x0), Neg(Zero)) new_sr(x0, x1, ty_Double) new_primEqInt(Pos(Succ(x0))) new_primDivNatS1(Succ(Zero), Zero) new_primDivNatS01(x0, x1, Zero, Succ(x2)) new_primMulInt(Pos(x0), Pos(x1)) new_primPlusNat0(Zero, Succ(x0)) new_gcd0Gcd'11(True, x0, x1) new_primModNatS1(Zero, x0) new_primMulNat0(Zero, Zero) new_abs0(Neg(Zero)) new_primDivNatS1(Zero, x0) new_primQuotInt3(x0, Neg(Succ(x1))) new_primRemInt(Pos(x0), Pos(Succ(x1))) new_primNegInt(x0) new_esEs1(x0, x1, ty_Integer) new_primMulNat0(Succ(x0), Zero) new_primMulNat0(Succ(x0), Succ(x1)) new_primQuotInt(x0, True, x1, x2) new_primDivNatS1(Succ(Zero), Succ(x0)) new_sr2(Double(x0, x1), Double(x2, x3)) new_gcd0Gcd'12(False, x0, x1) new_gcd0Gcd'02(x0, x1) new_primRemInt(Neg(x0), Neg(Zero)) new_primQuotInt(x0, False, x1, x2) new_primMulInt(Neg(x0), Neg(x1)) new_gcd0Gcd'2(x0, x1) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primPlusNat0(Succ(x0), Succ(x1)) new_primQuotInt1(Pos(x0), Neg(Succ(x1))) new_primQuotInt1(Neg(x0), Pos(Succ(x1))) new_primQuotInt2(x0, False, x1, x2) new_reduce2Reduce1(x0, x1, x2, x3, False, x4) new_gcd1(False, x0, x1) new_primQuotInt0(x0, x1, x2) new_esEs0(Integer(x0)) new_primPlusNat1(Zero, x0) new_error new_primModNatS1(Succ(Zero), Zero) new_primPlusNat1(Succ(x0), x1) new_gcd0Gcd'13(False, x0, x1) new_gcd0Gcd'01(x0, x1) new_primMinusNatS0(x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_quot3(Neg(x0), x1, x2) new_primEqInt(Neg(Zero)) new_sr(x0, x1, ty_Integer) new_primQuotInt1(Pos(x0), Pos(Zero)) new_rem(Integer(x0), Integer(x1)) new_esEs1(x0, x1, ty_Int) new_gcd10(True, x0, x1) new_sr(x0, x1, ty_Float) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_abs0(Pos(Succ(x0))) new_primModNatS01(x0, x1, Zero, Zero) new_gcd2(False, x0, x1) new_primPlusNat0(Zero, Zero) new_primDivNatS01(x0, x1, Succ(x2), Succ(x3)) new_sr0(Float(x0, x1), Float(x2, x3)) new_gcd20(True, x0, x1) new_gcd20(False, x0, x1) new_primModNatS02(x0, x1) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primDivNatS1(Succ(Succ(x0)), Zero) new_primQuotInt4(x0, True, x1, x2) new_primMinusNatS2(Zero, Zero) new_primQuotInt3(x0, Pos(Zero)) new_primDivNatS01(x0, x1, Zero, Zero) new_esEs(Pos(Zero)) new_abs(Integer(Pos(Succ(x0)))) new_primMulNat0(Zero, Succ(x0)) new_sr(x0, x1, ty_Int) new_sr4(Integer(x0), Integer(x1)) new_reduce2Reduce1(x0, x1, x2, x3, True, x4) new_esEs(Pos(Succ(x0))) new_primQuotInt1(Neg(x0), Neg(Succ(x1))) new_quot2(x0, x1, x2, x3, ty_Int) new_primRemInt(Pos(x0), Pos(Zero)) new_quot1(x0, x1, x2, x3, ty_Integer) new_quot3(Pos(x0), x1, x2) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primQuotInt2(x0, True, x1, x2) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_gcd00(x0, x1) new_primDivNatS01(x0, x1, Succ(x2), Zero) new_primModNatS1(Succ(Zero), Succ(x0)) new_primDivNatS1(Succ(Succ(x0)), Succ(x1)) new_primQuotInt1(Pos(x0), Pos(Succ(x1))) new_quot2(x0, x1, x2, x3, ty_Integer) new_gcd0Gcd'13(True, x0, x1) new_primMinusNatS3(x0, x1) new_primQuotInt3(x0, Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Zero) new_primMinusNatS1 new_quot0(x0, Integer(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_gcd0Gcd'12(True, x0, x1) new_primQuotInt1(Pos(x0), Neg(Zero)) new_primQuotInt1(Neg(x0), Pos(Zero)) new_quot1(x0, x1, x2, x3, ty_Int) new_abs0(Pos(Zero)) new_gcd2(True, x0, x1) new_sr3(:%(x0, x1), :%(x2, x3), x4) new_primQuotInt4(x0, False, x1, x2) new_gcd0Gcd'11(False, x0, x1) new_gcd10(False, x0, x1) new_abs(Integer(Neg(Succ(x0)))) new_primDivNatS02(x0, x1) new_abs0(Neg(Succ(x0))) new_esEs(Neg(Succ(x0))) new_gcd1(True, x0, x1) new_primMulInt(Pos(x0), Neg(x1)) new_primMulInt(Neg(x0), Pos(x1)) new_gcd0(x0, x1) new_sr1(x0, x1) new_primQuotInt3(x0, Neg(Zero)) new_esEs(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (342) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *new_enforceWHNF(vuz7, :(vuz80, vuz81), h) -> new_enforceWHNF(new_sr(vuz7, vuz80, h), vuz81, h) The graph contains the following edges 2 > 2, 3 >= 3 ---------------------------------------- (343) YES ---------------------------------------- (344) Obligation: Q DP problem: The TRS P consists of the following rules: new_primMinusNatS(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS(vuz780, vuz790) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (345) 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(vuz780), Succ(vuz790)) -> new_primMinusNatS(vuz780, vuz790) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (346) YES ---------------------------------------- (347) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(vuz60, vuz59) -> new_gcd0Gcd'10(new_esEs0(new_rem(vuz60, vuz59)), vuz59, vuz60) new_gcd0Gcd'10(False, vuz59, vuz60) -> new_gcd0Gcd'00(vuz59, new_rem(vuz60, vuz59)) The TRS R consists of the following rules: new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primRemInt(Pos(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primModNatS1(Zero, vuz5200) -> Zero new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_rem(Integer(vuz600), Integer(vuz590)) -> Integer(new_primRemInt(vuz600, vuz590)) new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_error -> error([]) new_primEqInt(Neg(Succ(vuz26000))) -> False new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_esEs0(Integer(vuz260)) -> new_primEqInt(vuz260) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_esEs0(Integer(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_rem(Integer(x0), Integer(x1)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (348) MNOCProof (EQUIVALENT) We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set. ---------------------------------------- (349) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(vuz60, vuz59) -> new_gcd0Gcd'10(new_esEs0(new_rem(vuz60, vuz59)), vuz59, vuz60) new_gcd0Gcd'10(False, vuz59, vuz60) -> new_gcd0Gcd'00(vuz59, new_rem(vuz60, vuz59)) The TRS R consists of the following rules: new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primRemInt(Pos(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primModNatS1(Zero, vuz5200) -> Zero new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_rem(Integer(vuz600), Integer(vuz590)) -> Integer(new_primRemInt(vuz600, vuz590)) new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_error -> error([]) new_primEqInt(Neg(Succ(vuz26000))) -> False new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_esEs0(Integer(vuz260)) -> new_primEqInt(vuz260) Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (350) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair new_gcd0Gcd'00(vuz60, vuz59) -> new_gcd0Gcd'10(new_esEs0(new_rem(vuz60, vuz59)), vuz59, vuz60) 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, vuz59, vuz60) -> new_gcd0Gcd'00(vuz59, new_rem(vuz60, vuz59)) 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(vuz60, vuz59) -> new_gcd0Gcd'10(new_esEs0(new_rem(vuz60, vuz59)), vuz59, vuz60) *(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, vuz59, vuz60) -> new_gcd0Gcd'00(vuz59, new_rem(vuz60, vuz59)) *(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. ---------------------------------------- (351) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'00(vuz60, vuz59) -> new_gcd0Gcd'10(new_esEs0(new_rem(vuz60, vuz59)), vuz59, vuz60) new_gcd0Gcd'10(False, vuz59, vuz60) -> new_gcd0Gcd'00(vuz59, new_rem(vuz60, vuz59)) The TRS R consists of the following rules: new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primRemInt(Pos(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primModNatS1(Zero, vuz5200) -> Zero new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_rem(Integer(vuz600), Integer(vuz590)) -> Integer(new_primRemInt(vuz600, vuz590)) new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_error -> error([]) new_primEqInt(Neg(Succ(vuz26000))) -> False new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_esEs0(Integer(vuz260)) -> new_primEqInt(vuz260) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_esEs0(Integer(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_rem(Integer(x0), Integer(x1)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (352) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'00(vuz60, vuz59) -> new_gcd0Gcd'10(new_esEs0(new_rem(vuz60, vuz59)), vuz59, vuz60) 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))) ---------------------------------------- (353) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, vuz59, vuz60) -> new_gcd0Gcd'00(vuz59, new_rem(vuz60, vuz59)) 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_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primRemInt(Pos(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primModNatS1(Zero, vuz5200) -> Zero new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_rem(Integer(vuz600), Integer(vuz590)) -> Integer(new_primRemInt(vuz600, vuz590)) new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_error -> error([]) new_primEqInt(Neg(Succ(vuz26000))) -> False new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_esEs0(Integer(vuz260)) -> new_primEqInt(vuz260) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_esEs0(Integer(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_rem(Integer(x0), Integer(x1)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (354) 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))) ---------------------------------------- (355) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, vuz59, vuz60) -> new_gcd0Gcd'00(vuz59, new_rem(vuz60, vuz59)) 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_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primRemInt(Pos(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primMinusNatS2(Zero, Zero) -> Zero new_primEqInt(Neg(Zero)) -> True new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primModNatS1(Zero, vuz5200) -> Zero new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_rem(Integer(vuz600), Integer(vuz590)) -> Integer(new_primRemInt(vuz600, vuz590)) new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_error -> error([]) new_primEqInt(Neg(Succ(vuz26000))) -> False new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primMinusNatS1 -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_esEs0(Integer(vuz260)) -> new_primEqInt(vuz260) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_esEs0(Integer(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_rem(Integer(x0), Integer(x1)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (356) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (357) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, vuz59, vuz60) -> new_gcd0Gcd'00(vuz59, new_rem(vuz60, vuz59)) 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(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_rem(Integer(vuz600), Integer(vuz590)) -> Integer(new_primRemInt(vuz600, vuz590)) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_esEs0(Integer(x0)) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_rem(Integer(x0), Integer(x1)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (358) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_esEs0(Integer(x0)) ---------------------------------------- (359) Obligation: Q DP problem: The TRS P consists of the following rules: new_gcd0Gcd'10(False, vuz59, vuz60) -> new_gcd0Gcd'00(vuz59, new_rem(vuz60, vuz59)) 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(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_rem(Integer(vuz600), Integer(vuz590)) -> Integer(new_primRemInt(vuz600, vuz590)) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_rem(Integer(x0), Integer(x1)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (360) TransformationProof (EQUIVALENT) By narrowing [LPAR04] the rule new_gcd0Gcd'10(False, vuz59, vuz60) -> new_gcd0Gcd'00(vuz59, new_rem(vuz60, vuz59)) 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)))) ---------------------------------------- (361) 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(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_rem(Integer(vuz600), Integer(vuz590)) -> Integer(new_primRemInt(vuz600, vuz590)) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_rem(Integer(x0), Integer(x1)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (362) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (363) 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(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_rem(Integer(x0), Integer(x1)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (364) QReductionProof (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)) ---------------------------------------- (365) 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(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (366) 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)))) ---------------------------------------- (367) 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(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (368) 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)))) ---------------------------------------- (369) 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(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (370) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (371) 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(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (372) 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)))) ---------------------------------------- (373) 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(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (374) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (375) Obligation: Q DP problem: The TRS P consists of the following rules: new_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(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (376) 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)))) ---------------------------------------- (377) 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(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (378) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (379) 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(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (380) 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)))) ---------------------------------------- (381) 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(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (382) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (383) 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(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (384) 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))) ---------------------------------------- (385) 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(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (386) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 4 less nodes. ---------------------------------------- (387) Complex Obligation (AND) ---------------------------------------- (388) 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(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (389) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (390) 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (391) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_error new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) ---------------------------------------- (392) 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (393) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1))))) ---------------------------------------- (394) 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_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (395) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (396) 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_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (397) 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))))) ---------------------------------------- (398) 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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (399) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (400) 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_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (401) 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))))) ---------------------------------------- (402) 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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (403) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0)))))) ---------------------------------------- (404) 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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (405) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (406) Complex Obligation (AND) ---------------------------------------- (407) 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (408) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (409) 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(vuz26000))) -> False new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (410) QReductionProof (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_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) ---------------------------------------- (411) 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(vuz26000))) -> False new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (412) 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)))))) ---------------------------------------- (413) 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(vuz26000))) -> False new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (414) 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))))) ---------------------------------------- (415) 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(vuz26000))) -> False new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (416) 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))))) ---------------------------------------- (417) 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(vuz26000))) -> False new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (418) 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))))) ---------------------------------------- (419) 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(vuz26000))) -> False new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (420) 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))))) ---------------------------------------- (421) 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(vuz26000))) -> False new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (422) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (423) 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(vuz26000))) -> False new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (424) 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)))))) ---------------------------------------- (425) 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(vuz26000))) -> False new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (426) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (427) 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(vuz26000))) -> False new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (428) 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))))))) ---------------------------------------- (429) 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(vuz26000))) -> False new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (430) 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, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) ---------------------------------------- (431) YES ---------------------------------------- (432) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (433) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (434) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (435) QReductionProof (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_primMinusNatS1 new_primMinusNatS0(x0) ---------------------------------------- (436) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (437) 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_primModNatS01(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(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(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_primModNatS02(Zero, Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))))) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(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_primModNatS01(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_primModNatS02(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_primModNatS02(Succ(x2), 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(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)))))) ---------------------------------------- (438) 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_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Zero, Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(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_primModNatS02(Succ(x2), 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(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (439) 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_primModNatS02(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)))))) ---------------------------------------- (440) 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_primModNatS01(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_primModNatS01(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_primModNatS02(Succ(x2), 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(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(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (441) 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_primModNatS02(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))))))) ---------------------------------------- (442) 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_primModNatS01(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_primModNatS01(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(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(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (443) 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)))))) ---------------------------------------- (444) 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_primModNatS01(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_primModNatS01(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(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(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (445) 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)))))) ---------------------------------------- (446) 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_primModNatS01(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_primModNatS01(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(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))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (447) 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))))))) ---------------------------------------- (448) 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_primModNatS01(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_primModNatS01(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(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (449) 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)))))) ---------------------------------------- (450) 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_primModNatS01(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_primModNatS01(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(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (451) 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))))))) ---------------------------------------- (452) 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_primModNatS01(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_primModNatS01(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(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (453) 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)))))) ---------------------------------------- (454) 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_primModNatS01(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_primModNatS01(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (455) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (456) 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_primModNatS01(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_primModNatS01(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (457) 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_primModNatS01(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(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS02(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_primModNatS02(Zero, 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_primModNatS01(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_primModNatS01(Succ(x2), Succ(x3), x2, x3))))) (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_primModNatS02(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_primModNatS02(Succ(x2), 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)))))) ---------------------------------------- (458) 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_primModNatS01(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(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS02(Zero, 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_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) 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_primModNatS02(Succ(x2), 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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (459) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (460) Complex Obligation (AND) ---------------------------------------- (461) 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_primModNatS02(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (462) 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_primModNatS02(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)))))) ---------------------------------------- (463) 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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (464) 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)))))) ---------------------------------------- (465) 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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (466) 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)))))) ---------------------------------------- (467) 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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (468) 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))) ---------------------------------------- (469) 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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all (P,Q,R)-chains. ---------------------------------------- (470) InductionCalculusProof (EQUIVALENT) Note that final constraints are written in bold face. For Pair 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 following chains were created: *We consider the chain new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x1))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x1))))), 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)))))) which results in the following constraint: (1) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x1))))), 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(x1))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'00(Integer(Neg(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'10(False, Integer(Neg(Succ(Succ(Succ(x1))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x1))))), Integer(Neg(Succ(Succ(Zero)))))) For Pair 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 following chains were created: *We consider the chain new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x8)))))), new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x9)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x9), Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x8))))))=new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x9)))))) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x8))))))) We simplified constraint (1) using rules (I), (II), (IV), (VII) which results in the following new constraint: (2) (Neg(new_primModNatS1(Succ(x8), Succ(Zero)))=x20 & new_primEqInt(x20)=False ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(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 & Neg(new_primModNatS1(Succ(x8), Succ(Zero)))=Neg(Succ(x21)) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(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(Neg(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(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_primModNatS01(x25, x24, x25, x24)=Succ(x21) & Succ(x8)=Succ(Succ(x25)) & Succ(Zero)=Succ(x24) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x8))))))) (6) (Succ(Zero)=Succ(x21) & Succ(x8)=Succ(Zero) & Succ(Zero)=Succ(x26) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x8))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(x8), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(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_primModNatS01(x25, x24, x28, x29)=Succ(x21) & Zero=x24 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x25)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x25)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(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(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Zero))))))) We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x25, x24, x28, x29)=Succ(x21) which results in the following new constraints: (9) (new_primModNatS02(x31, x30)=Succ(x21) & x31=Zero & x30=Zero & Zero=x30 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x31)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x31)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x31)))))))) (10) (new_primModNatS01(x35, x34, x33, x32)=Succ(x21) & x35=Succ(x33) & x34=Succ(x32) & Zero=x34 & (\/x36:new_primModNatS01(x35, x34, x33, x32)=Succ(x36) & x35=x33 & x34=x32 & Zero=x34 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x35)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x35)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x35)))))))) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x35)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x35)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x35)))))))) (11) (new_primModNatS02(x39, x38)=Succ(x21) & x39=Succ(x37) & x38=Zero & Zero=x38 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x39)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x39)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x39)))))))) (12) (Succ(Succ(x42))=Succ(x21) & x42=Zero & x41=Succ(x40) & Zero=x41 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x42)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x42)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(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(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) 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(Succ(x37))))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x37))), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x37))))))))) We solved constraint (12) using rules (I), (II), (III), (IV). For Pair 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 following chains were created: *We consider the chain new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x10)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x10))))), Integer(Neg(Succ(Succ(Zero))))), new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x11))))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x11))))), Integer(Neg(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x10))))), Integer(Neg(Succ(Succ(Zero)))))=new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x11))))), Integer(Neg(Succ(Succ(Zero))))) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x10))))))_>=_new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x10))))), 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(Neg(Succ(Succ(Succ(x10))))))_>=_new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x10))))), Integer(Neg(Succ(Succ(Zero)))))) For Pair 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 following chains were created: *We consider the chain new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x17)))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x17), Succ(Zero))))), new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x18)))))) -> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x18))))), Integer(Neg(Succ(Succ(Zero))))) which results in the following constraint: (1) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(x17), Succ(Zero)))))=new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x18)))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(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(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(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_primModNatS01(x50, x49, x50, x49)=Succ(Succ(Succ(x18))) & Succ(x17)=Succ(Succ(x50)) & Succ(Zero)=Succ(x49) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(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(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(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_primModNatS01(x50, x49, x53, x54)=Succ(Succ(Succ(x18))) & Zero=x49 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x50)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(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_primModNatS01(x50, x49, x53, x54)=Succ(Succ(Succ(x18))) which results in the following new constraints: (6) (new_primModNatS02(x56, x55)=Succ(Succ(Succ(x18))) & x56=Zero & x55=Zero & Zero=x55 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x56)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(x56)), Succ(Zero)))))) (7) (new_primModNatS01(x60, x59, x58, x57)=Succ(Succ(Succ(x18))) & x60=Succ(x58) & x59=Succ(x57) & Zero=x59 & (\/x61:new_primModNatS01(x60, x59, x58, x57)=Succ(Succ(Succ(x61))) & x60=x58 & x59=x57 & Zero=x59 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x60)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(x60)), Succ(Zero)))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x60)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(x60)), Succ(Zero)))))) (8) (new_primModNatS02(x64, x63)=Succ(Succ(Succ(x18))) & x64=Succ(x62) & x63=Zero & Zero=x63 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x64)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(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(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x67)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(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(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(Zero)), 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(Neg(Succ(Succ(Succ(Succ(Succ(x62))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(Succ(x62))), 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(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(x1))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x1))))), 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(Succ(Zero))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x37))))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x37))), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x37))))))))) *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(x10))))))_>=_new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x10))))), 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))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x62))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(Succ(x62))), 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. ---------------------------------------- (471) 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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (472) 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_primModNatS01(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_primModNatS01(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (473) 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))) ---------------------------------------- (474) 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_primModNatS01(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_primModNatS01(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all (P,Q,R)-chains. ---------------------------------------- (475) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(x3), Succ(x2), x3, x2))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x12, x13, x3, x2)=Succ(Succ(Succ(x5))) which results in the following new constraints: (3) (new_primModNatS02(x15, x14)=Succ(Succ(Succ(x5))) & Succ(Zero)=x15 & Succ(Zero)=x14 ==> 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_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) (4) (new_primModNatS01(x19, x18, x17, x16)=Succ(Succ(Succ(x5))) & Succ(Succ(x17))=x19 & Succ(Succ(x16))=x18 & (\/x20:new_primModNatS01(x19, x18, x17, x16)=Succ(Succ(Succ(x20))) & Succ(x17)=x19 & Succ(x16)=x18 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x16))))), Integer(Neg(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x16))))), Integer(Neg(new_primModNatS01(Succ(x17), Succ(x16), x17, x16))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x16)))))), Integer(Neg(Succ(Succ(Succ(Succ(x17)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x16)))))), Integer(Neg(new_primModNatS01(Succ(Succ(x17)), Succ(Succ(x16)), Succ(x17), Succ(x16)))))) (5) (new_primModNatS02(x23, x22)=Succ(Succ(Succ(x5))) & Succ(Succ(x21))=x23 & Succ(Zero)=x22 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x21)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Succ(x21)), Succ(Zero), Succ(x21), 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_primModNatS01(Succ(Zero), Succ(Succ(x24)), Zero, Succ(x24)))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x15, x14)=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(Zero)=x28 & Succ(Zero)=x27 ==> 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_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS01(x19, x18, x17, x16)=Succ(Succ(Succ(x5))) & Succ(Succ(x17))=x19 & Succ(Succ(x16))=x18 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x16)))))), Integer(Neg(Succ(Succ(Succ(Succ(x17)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x16)))))), Integer(Neg(new_primModNatS01(Succ(Succ(x17)), Succ(Succ(x16)), Succ(x17), Succ(x16)))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(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(Succ(x21))=x47 & Succ(Zero)=x46 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x21)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Succ(x21)), Succ(Zero), Succ(x21), 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_primModNatS01(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(Zero))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x19, x18, x17, x16)=Succ(Succ(Succ(x5))) which results in the following new constraints: (12) (new_primModNatS02(x34, x33)=Succ(Succ(Succ(x5))) & Succ(Succ(Zero))=x34 & Succ(Succ(Zero))=x33 ==> 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_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) (13) (new_primModNatS01(x38, x37, x36, x35)=Succ(Succ(Succ(x5))) & Succ(Succ(Succ(x36)))=x38 & Succ(Succ(Succ(x35)))=x37 & (\/x39:new_primModNatS01(x38, x37, x36, x35)=Succ(Succ(Succ(x39))) & Succ(Succ(x36))=x38 & Succ(Succ(x35))=x37 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x35)))))), Integer(Neg(Succ(Succ(Succ(Succ(x36)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x35)))))), Integer(Neg(new_primModNatS01(Succ(Succ(x36)), Succ(Succ(x35)), Succ(x36), Succ(x35)))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x35))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x36))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x35))))))), Integer(Neg(new_primModNatS01(Succ(Succ(Succ(x36))), Succ(Succ(Succ(x35))), Succ(Succ(x36)), Succ(Succ(x35))))))) (14) (new_primModNatS02(x42, x41)=Succ(Succ(Succ(x5))) & Succ(Succ(Succ(x40)))=x42 & Succ(Succ(Zero))=x41 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x40))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS01(Succ(Succ(Succ(x40))), Succ(Succ(Zero)), Succ(Succ(x40)), 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_primModNatS01(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(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), 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(x35))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x36))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x35))))))), Integer(Neg(new_primModNatS01(Succ(Succ(Succ(x36))), Succ(Succ(Succ(x35))), Succ(Succ(x36)), Succ(Succ(x35))))))) 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(Succ(x40))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS01(Succ(Succ(Succ(x40))), Succ(Succ(Zero)), Succ(Succ(x40)), 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_primModNatS01(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(Succ(x21)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Succ(x21)), Succ(Zero), Succ(x21), 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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(x9), Succ(x8), x9, x8)))) which results in the following constraint: (1) (new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(x54, x55, x6, x7)=Succ(x53) which results in the following new constraints: (5) (new_primModNatS02(x57, x56)=Succ(x53) & Succ(Zero)=x57 & Succ(Zero)=x56 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) (6) (new_primModNatS01(x61, x60, x59, x58)=Succ(x53) & Succ(Succ(x59))=x61 & Succ(Succ(x58))=x60 & (\/x62:new_primModNatS01(x61, x60, x59, x58)=Succ(x62) & Succ(x59)=x61 & Succ(x58)=x60 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x59))))), Integer(Neg(Succ(Succ(Succ(x58))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x59), Succ(x58), x59, x58))), Integer(Neg(Succ(Succ(Succ(x58))))), Integer(Neg(Succ(Succ(Succ(x59))))))) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x59)))))), Integer(Neg(Succ(Succ(Succ(Succ(x58)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x59)), Succ(Succ(x58)), Succ(x59), Succ(x58)))), Integer(Neg(Succ(Succ(Succ(Succ(x58)))))), Integer(Neg(Succ(Succ(Succ(Succ(x59)))))))) (7) (new_primModNatS02(x65, x64)=Succ(x53) & Succ(Succ(x63))=x65 & Succ(Zero)=x64 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x63)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x63)), Succ(Zero), Succ(x63), Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x63)))))))) (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_primModNatS01(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_primModNatS02(x57, x56)=Succ(x53) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x70), Succ(x69)), Succ(x69))=Succ(x53) & Succ(Zero)=x70 & Succ(Zero)=x69 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) We simplified constraint (6) using rule (IV) which results in the following new constraint: (10) (new_primModNatS01(x61, x60, x59, x58)=Succ(x53) & Succ(Succ(x59))=x61 & Succ(Succ(x58))=x60 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x59)))))), Integer(Neg(Succ(Succ(Succ(Succ(x58)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x59)), Succ(Succ(x58)), Succ(x59), Succ(x58)))), Integer(Neg(Succ(Succ(Succ(Succ(x58)))))), Integer(Neg(Succ(Succ(Succ(Succ(x59)))))))) We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(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(Succ(x63))=x89 & Succ(Zero)=x88 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x63)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x63)), Succ(Zero), Succ(x63), Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x63)))))))) 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_primModNatS01(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(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x61, x60, x59, x58)=Succ(x53) which results in the following new constraints: (14) (new_primModNatS02(x76, x75)=Succ(x53) & Succ(Succ(Zero))=x76 & Succ(Succ(Zero))=x75 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) (15) (new_primModNatS01(x80, x79, x78, x77)=Succ(x53) & Succ(Succ(Succ(x78)))=x80 & Succ(Succ(Succ(x77)))=x79 & (\/x81:new_primModNatS01(x80, x79, x78, x77)=Succ(x81) & Succ(Succ(x78))=x80 & Succ(Succ(x77))=x79 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x78)))))), Integer(Neg(Succ(Succ(Succ(Succ(x77)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x78)), Succ(Succ(x77)), Succ(x78), Succ(x77)))), Integer(Neg(Succ(Succ(Succ(Succ(x77)))))), Integer(Neg(Succ(Succ(Succ(Succ(x78)))))))) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x78))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x77))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x78))), Succ(Succ(Succ(x77))), Succ(Succ(x78)), Succ(Succ(x77))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x77))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x78))))))))) (16) (new_primModNatS02(x84, x83)=Succ(x53) & Succ(Succ(Succ(x82)))=x84 & Succ(Succ(Zero))=x83 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x82))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x82))), Succ(Succ(Zero)), Succ(Succ(x82)), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x82))))))))) (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_primModNatS01(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(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(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 (15) using rules (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x78))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x77))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x78))), Succ(Succ(Succ(x77))), Succ(Succ(x78)), Succ(Succ(x77))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x77))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x78))))))))) 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(x82))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x82))), Succ(Succ(Zero)), Succ(Succ(x82)), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x82))))))))) 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_primModNatS01(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(Succ(x63)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x63)), Succ(Zero), Succ(x63), Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x63)))))))) 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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(Zero), Succ(Succ(x24)), Zero, Succ(x24)))))) *(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_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) *(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_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x35))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x36))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x35))))))), Integer(Neg(new_primModNatS01(Succ(Succ(Succ(x36))), Succ(Succ(Succ(x35))), Succ(Succ(x36)), Succ(Succ(x35))))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x40))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS01(Succ(Succ(Succ(x40))), Succ(Succ(Zero)), Succ(Succ(x40)), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x21)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Succ(x21)), Succ(Zero), Succ(x21), Zero))))) *new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(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(Succ(Succ(x78))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x77))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x78))), Succ(Succ(Succ(x77))), Succ(Succ(x78)), Succ(Succ(x77))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x77))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x78))))))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x82))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x82))), Succ(Succ(Zero)), Succ(Succ(x82)), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x82))))))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x63)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x63)), Succ(Zero), Succ(x63), Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x63)))))))) 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. ---------------------------------------- (476) 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_primModNatS01(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_primModNatS01(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (477) 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(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (478) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (479) 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (480) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_error new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) ---------------------------------------- (481) 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (482) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1))))) ---------------------------------------- (483) 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_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (484) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (485) 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_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (486) 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))))) ---------------------------------------- (487) 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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (488) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (489) 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_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (490) 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))))) ---------------------------------------- (491) 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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (492) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0)))))) ---------------------------------------- (493) 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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (494) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 2 less nodes. ---------------------------------------- (495) Complex Obligation (AND) ---------------------------------------- (496) 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (497) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (498) 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(vuz26000))) -> False new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (499) QReductionProof (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_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) ---------------------------------------- (500) 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(vuz26000))) -> False new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (501) 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)))))) ---------------------------------------- (502) 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(vuz26000))) -> False new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (503) 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))))) ---------------------------------------- (504) 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(vuz26000))) -> False new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (505) 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))))) ---------------------------------------- (506) 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(vuz26000))) -> False new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (507) 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))))) ---------------------------------------- (508) 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(vuz26000))) -> False new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (509) 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))))) ---------------------------------------- (510) 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(vuz26000))) -> False new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (511) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (512) 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(vuz26000))) -> False new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (513) 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)))))) ---------------------------------------- (514) 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(vuz26000))) -> False new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (515) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (516) 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(vuz26000))) -> False new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (517) 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))))))) ---------------------------------------- (518) 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(vuz26000))) -> False new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (519) 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, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) ---------------------------------------- (520) YES ---------------------------------------- (521) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (522) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (523) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (524) QReductionProof (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_primMinusNatS1 new_primMinusNatS0(x0) ---------------------------------------- (525) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (526) 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_primModNatS01(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(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(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_primModNatS02(Zero, Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))))) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(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_primModNatS01(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_primModNatS02(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_primModNatS02(Succ(x2), 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(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)))))) ---------------------------------------- (527) 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_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Zero, Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(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_primModNatS02(Succ(x2), 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(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (528) 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_primModNatS02(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)))))) ---------------------------------------- (529) 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_primModNatS01(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_primModNatS01(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_primModNatS02(Succ(x2), 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(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(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (530) 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_primModNatS02(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))))))) ---------------------------------------- (531) 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_primModNatS01(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_primModNatS01(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(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(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (532) 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)))))) ---------------------------------------- (533) 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_primModNatS01(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_primModNatS01(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(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(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (534) 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)))))) ---------------------------------------- (535) 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_primModNatS01(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_primModNatS01(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(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))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (536) 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))))))) ---------------------------------------- (537) 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_primModNatS01(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_primModNatS01(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(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (538) 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)))))) ---------------------------------------- (539) 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_primModNatS01(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_primModNatS01(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(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (540) 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))))))) ---------------------------------------- (541) 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_primModNatS01(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_primModNatS01(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(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (542) 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)))))) ---------------------------------------- (543) 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_primModNatS01(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_primModNatS01(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (544) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (545) 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_primModNatS01(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_primModNatS01(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (546) 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_primModNatS01(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(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS02(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_primModNatS02(Zero, 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_primModNatS01(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_primModNatS01(Succ(x2), Succ(x3), x2, x3))))) (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_primModNatS02(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_primModNatS02(Succ(x2), 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)))))) ---------------------------------------- (547) 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_primModNatS01(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(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS02(Zero, 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_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) 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_primModNatS02(Succ(x2), 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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (548) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 1 less node. ---------------------------------------- (549) Complex Obligation (AND) ---------------------------------------- (550) 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_primModNatS02(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (551) 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_primModNatS02(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)))))) ---------------------------------------- (552) 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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (553) 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)))))) ---------------------------------------- (554) 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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (555) 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)))))) ---------------------------------------- (556) 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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (557) 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)) ---------------------------------------- (558) 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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all (P,Q,R)-chains. ---------------------------------------- (559) 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_primModNatS01(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_primModNatS01(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_primModNatS01(x25, x24, x28, x29)=Succ(x21) which results in the following new constraints: (9) (new_primModNatS02(x31, x30)=Succ(x21) & x31=Zero & x30=Zero & Zero=x30 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x31)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x31)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x31)))))))) (10) (new_primModNatS01(x35, x34, x33, x32)=Succ(x21) & x35=Succ(x33) & x34=Succ(x32) & Zero=x34 & (\/x36:new_primModNatS01(x35, x34, x33, x32)=Succ(x36) & x35=x33 & x34=x32 & Zero=x34 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x35)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x35)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x35)))))))) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x35)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x35)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x35)))))))) (11) (new_primModNatS02(x39, x38)=Succ(x21) & x39=Succ(x37) & 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(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 (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(Succ(x37))))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x37))), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x37))))))))) 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_primModNatS01(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_primModNatS01(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_primModNatS01(x50, x49, x53, x54)=Succ(Succ(Succ(x18))) which results in the following new constraints: (6) (new_primModNatS02(x56, x55)=Succ(Succ(Succ(x18))) & x56=Zero & x55=Zero & Zero=x55 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x56)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x56)), Succ(Zero)))))) (7) (new_primModNatS01(x60, x59, x58, x57)=Succ(Succ(Succ(x18))) & x60=Succ(x58) & x59=Succ(x57) & Zero=x59 & (\/x61:new_primModNatS01(x60, x59, x58, x57)=Succ(Succ(Succ(x61))) & x60=x58 & x59=x57 & Zero=x59 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x60)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x60)), Succ(Zero)))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x60)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x60)), Succ(Zero)))))) (8) (new_primModNatS02(x64, x63)=Succ(Succ(Succ(x18))) & x64=Succ(x62) & 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(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(Zero)), 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(Succ(x62))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(Succ(x62))), 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(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(Succ(Succ(Succ(x37))))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x37))), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x37))))))))) *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(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x62))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(Succ(x62))), 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. ---------------------------------------- (560) 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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (561) 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_primModNatS01(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_primModNatS01(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (562) 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)) ---------------------------------------- (563) 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_primModNatS01(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_primModNatS01(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all (P,Q,R)-chains. ---------------------------------------- (564) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(x3), Succ(x2), x3, x2))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x12, x13, x3, x2)=Succ(Succ(Succ(x5))) which results in the following new constraints: (3) (new_primModNatS02(x15, x14)=Succ(Succ(Succ(x5))) & Succ(Zero)=x15 & Succ(Zero)=x14 ==> 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_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) (4) (new_primModNatS01(x19, x18, x17, x16)=Succ(Succ(Succ(x5))) & Succ(Succ(x17))=x19 & Succ(Succ(x16))=x18 & (\/x20:new_primModNatS01(x19, x18, x17, x16)=Succ(Succ(Succ(x20))) & Succ(x17)=x19 & Succ(x16)=x18 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x16))))), Integer(Pos(Succ(Succ(Succ(x17))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x16))))), Integer(Pos(new_primModNatS01(Succ(x17), Succ(x16), x17, x16))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x16)))))), Integer(Pos(Succ(Succ(Succ(Succ(x17)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x16)))))), Integer(Pos(new_primModNatS01(Succ(Succ(x17)), Succ(Succ(x16)), Succ(x17), Succ(x16)))))) (5) (new_primModNatS02(x23, x22)=Succ(Succ(Succ(x5))) & Succ(Succ(x21))=x23 & Succ(Zero)=x22 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x21)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Succ(x21)), Succ(Zero), Succ(x21), 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_primModNatS01(Succ(Zero), Succ(Succ(x24)), Zero, Succ(x24)))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x15, x14)=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(Zero)=x28 & Succ(Zero)=x27 ==> 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_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS01(x19, x18, x17, x16)=Succ(Succ(Succ(x5))) & Succ(Succ(x17))=x19 & Succ(Succ(x16))=x18 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x16)))))), Integer(Pos(Succ(Succ(Succ(Succ(x17)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x16)))))), Integer(Pos(new_primModNatS01(Succ(Succ(x17)), Succ(Succ(x16)), Succ(x17), Succ(x16)))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(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(Succ(x21))=x47 & Succ(Zero)=x46 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x21)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Succ(x21)), Succ(Zero), Succ(x21), 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_primModNatS01(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(Zero))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x19, x18, x17, x16)=Succ(Succ(Succ(x5))) which results in the following new constraints: (12) (new_primModNatS02(x34, x33)=Succ(Succ(Succ(x5))) & Succ(Succ(Zero))=x34 & Succ(Succ(Zero))=x33 ==> 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_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) (13) (new_primModNatS01(x38, x37, x36, x35)=Succ(Succ(Succ(x5))) & Succ(Succ(Succ(x36)))=x38 & Succ(Succ(Succ(x35)))=x37 & (\/x39:new_primModNatS01(x38, x37, x36, x35)=Succ(Succ(Succ(x39))) & Succ(Succ(x36))=x38 & Succ(Succ(x35))=x37 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x35)))))), Integer(Pos(Succ(Succ(Succ(Succ(x36)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x35)))))), Integer(Pos(new_primModNatS01(Succ(Succ(x36)), Succ(Succ(x35)), Succ(x36), Succ(x35)))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x35))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x36))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x35))))))), Integer(Pos(new_primModNatS01(Succ(Succ(Succ(x36))), Succ(Succ(Succ(x35))), Succ(Succ(x36)), Succ(Succ(x35))))))) (14) (new_primModNatS02(x42, x41)=Succ(Succ(Succ(x5))) & Succ(Succ(Succ(x40)))=x42 & Succ(Succ(Zero))=x41 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x40))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS01(Succ(Succ(Succ(x40))), Succ(Succ(Zero)), Succ(Succ(x40)), 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_primModNatS01(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(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), 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(x35))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x36))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x35))))))), Integer(Pos(new_primModNatS01(Succ(Succ(Succ(x36))), Succ(Succ(Succ(x35))), Succ(Succ(x36)), Succ(Succ(x35))))))) 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(Succ(x40))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS01(Succ(Succ(Succ(x40))), Succ(Succ(Zero)), Succ(Succ(x40)), 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_primModNatS01(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(Succ(x21)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Succ(x21)), Succ(Zero), Succ(x21), 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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(x9), Succ(x8), x9, x8)))) which results in the following constraint: (1) (new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(x54, x55, x6, x7)=Succ(x53) which results in the following new constraints: (5) (new_primModNatS02(x57, x56)=Succ(x53) & Succ(Zero)=x57 & Succ(Zero)=x56 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) (6) (new_primModNatS01(x61, x60, x59, x58)=Succ(x53) & Succ(Succ(x59))=x61 & Succ(Succ(x58))=x60 & (\/x62:new_primModNatS01(x61, x60, x59, x58)=Succ(x62) & Succ(x59)=x61 & Succ(x58)=x60 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x59))))), Integer(Pos(Succ(Succ(Succ(x58))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x59), Succ(x58), x59, x58))), Integer(Pos(Succ(Succ(Succ(x58))))), Integer(Pos(Succ(Succ(Succ(x59))))))) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x59)))))), Integer(Pos(Succ(Succ(Succ(Succ(x58)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x59)), Succ(Succ(x58)), Succ(x59), Succ(x58)))), Integer(Pos(Succ(Succ(Succ(Succ(x58)))))), Integer(Pos(Succ(Succ(Succ(Succ(x59)))))))) (7) (new_primModNatS02(x65, x64)=Succ(x53) & Succ(Succ(x63))=x65 & Succ(Zero)=x64 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x63)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x63)), Succ(Zero), Succ(x63), Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x63)))))))) (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_primModNatS01(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_primModNatS02(x57, x56)=Succ(x53) which results in the following new constraint: (9) (new_primModNatS1(new_primMinusNatS2(Succ(x70), Succ(x69)), Succ(x69))=Succ(x53) & Succ(Zero)=x70 & Succ(Zero)=x69 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) We simplified constraint (6) using rule (IV) which results in the following new constraint: (10) (new_primModNatS01(x61, x60, x59, x58)=Succ(x53) & Succ(Succ(x59))=x61 & Succ(Succ(x58))=x60 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x59)))))), Integer(Pos(Succ(Succ(Succ(Succ(x58)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x59)), Succ(Succ(x58)), Succ(x59), Succ(x58)))), Integer(Pos(Succ(Succ(Succ(Succ(x58)))))), Integer(Pos(Succ(Succ(Succ(Succ(x59)))))))) We simplified constraint (7) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(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(Succ(x63))=x89 & Succ(Zero)=x88 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x63)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x63)), Succ(Zero), Succ(x63), Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x63)))))))) 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_primModNatS01(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(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) We simplified constraint (10) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x61, x60, x59, x58)=Succ(x53) which results in the following new constraints: (14) (new_primModNatS02(x76, x75)=Succ(x53) & Succ(Succ(Zero))=x76 & Succ(Succ(Zero))=x75 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) (15) (new_primModNatS01(x80, x79, x78, x77)=Succ(x53) & Succ(Succ(Succ(x78)))=x80 & Succ(Succ(Succ(x77)))=x79 & (\/x81:new_primModNatS01(x80, x79, x78, x77)=Succ(x81) & Succ(Succ(x78))=x80 & Succ(Succ(x77))=x79 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x78)))))), Integer(Pos(Succ(Succ(Succ(Succ(x77)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x78)), Succ(Succ(x77)), Succ(x78), Succ(x77)))), Integer(Pos(Succ(Succ(Succ(Succ(x77)))))), Integer(Pos(Succ(Succ(Succ(Succ(x78)))))))) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x78))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x77))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x78))), Succ(Succ(Succ(x77))), Succ(Succ(x78)), Succ(Succ(x77))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x77))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x78))))))))) (16) (new_primModNatS02(x84, x83)=Succ(x53) & Succ(Succ(Succ(x82)))=x84 & Succ(Succ(Zero))=x83 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x82))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x82))), Succ(Succ(Zero)), Succ(Succ(x82)), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x82))))))))) (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_primModNatS01(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(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(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 (15) using rules (III), (IV) which results in the following new constraint: (19) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x78))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x77))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x78))), Succ(Succ(Succ(x77))), Succ(Succ(x78)), Succ(Succ(x77))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x77))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x78))))))))) 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(x82))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x82))), Succ(Succ(Zero)), Succ(Succ(x82)), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x82))))))))) 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_primModNatS01(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(Succ(x63)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x63)), Succ(Zero), Succ(x63), Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x63)))))))) 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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(Zero), Succ(Succ(x24)), Zero, Succ(x24)))))) *(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_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) *(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_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x35))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x36))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x35))))))), Integer(Pos(new_primModNatS01(Succ(Succ(Succ(x36))), Succ(Succ(Succ(x35))), Succ(Succ(x36)), Succ(Succ(x35))))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x40))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS01(Succ(Succ(Succ(x40))), Succ(Succ(Zero)), Succ(Succ(x40)), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x21)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Succ(x21)), Succ(Zero), Succ(x21), Zero))))) *new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(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(Succ(Succ(x78))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x77))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x78))), Succ(Succ(Succ(x77))), Succ(Succ(x78)), Succ(Succ(x77))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x77))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x78))))))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x82))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x82))), Succ(Succ(Zero)), Succ(Succ(x82)), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x82))))))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x63)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x63)), Succ(Zero), Succ(x63), Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x63)))))))) 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. ---------------------------------------- (565) 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_primModNatS01(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_primModNatS01(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(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (566) 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(vuz530), Neg(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Succ(vuz5200))) -> Pos(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Neg(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Pos(Zero)) -> new_error new_primRemInt(Neg(vuz530), Neg(Succ(vuz5200))) -> Neg(new_primModNatS1(vuz530, vuz5200)) new_primRemInt(Pos(vuz530), Neg(Zero)) -> new_error new_primRemInt(Neg(vuz530), Pos(Zero)) -> new_error new_error -> error([]) new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primMinusNatS1 -> Zero new_primEqInt(Neg(Zero)) -> True new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (567) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (568) 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primRemInt(Neg(x0), Neg(Zero)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primModNatS1(Succ(Succ(x0)), Zero) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_error new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primEqInt(Neg(Zero)) new_primRemInt(Pos(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) new_primRemInt(Pos(x0), Pos(Succ(x1))) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (569) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primRemInt(Neg(x0), Neg(Zero)) new_primRemInt(Pos(x0), Neg(Succ(x1))) new_primRemInt(Neg(x0), Pos(Succ(x1))) new_error new_primRemInt(Neg(x0), Neg(Succ(x1))) new_primRemInt(Pos(x0), Pos(Zero)) new_primRemInt(Pos(x0), Neg(Zero)) new_primRemInt(Neg(x0), Pos(Zero)) new_primRemInt(Pos(x0), Pos(Succ(x1))) ---------------------------------------- (570) 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (571) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1))))) ---------------------------------------- (572) 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_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (573) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (574) 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_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (575) 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))))) ---------------------------------------- (576) 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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (577) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (578) 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_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (579) 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))))) ---------------------------------------- (580) 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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (581) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1))), Integer(Neg(Succ(Succ(x1)))), Integer(Pos(Succ(Succ(x0)))))) ---------------------------------------- (582) 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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (583) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes. ---------------------------------------- (584) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (585) 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))))) ---------------------------------------- (586) 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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (587) 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)))))) ---------------------------------------- (588) 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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (589) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1))), Integer(Pos(Succ(Succ(x1)))), Integer(Neg(Succ(Succ(x0)))))) ---------------------------------------- (590) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (591) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (592) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (593) 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)))))) ---------------------------------------- (594) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (595) 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))))) ---------------------------------------- (596) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (597) 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))))) ---------------------------------------- (598) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (599) 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))))) ---------------------------------------- (600) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (601) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (602) 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_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(x0)))), Integer(Pos(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (603) 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_primModNatS01(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(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS02(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_primModNatS02(Zero, 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_primModNatS01(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_primModNatS01(Succ(x2), Succ(x3), x2, x3))))) (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_primModNatS02(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_primModNatS02(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(Succ(x2))))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Zero)))))) ---------------------------------------- (604) 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_primModNatS01(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_primModNatS01(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(Zero))))) -> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS02(Zero, 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_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) 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_primModNatS02(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))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (605) 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_primModNatS02(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)))))) ---------------------------------------- (606) 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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) 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_primModNatS02(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(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (607) 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_primModNatS02(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)))))) ---------------------------------------- (608) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Succ(x2)), Succ(Zero)), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (609) 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)))))) ---------------------------------------- (610) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero, Zero), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (611) 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)))))) ---------------------------------------- (612) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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(new_primMinusNatS2(Succ(x2), Zero), Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (613) 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)))))) ---------------------------------------- (614) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero, Succ(Zero))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (615) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (616) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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(new_primMinusNatS2(Succ(x2), Zero), 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (617) 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)))))) ---------------------------------------- (618) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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'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(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (619) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1))))) ---------------------------------------- (620) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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'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(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(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_primModNatS01(x0, x1, x0, x1)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (621) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 2 less nodes. ---------------------------------------- (622) Complex Obligation (AND) ---------------------------------------- (623) 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (624) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (625) 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(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (626) QReductionProof (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_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) ---------------------------------------- (627) 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(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (628) 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))))) ---------------------------------------- (629) 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(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (630) 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))))) ---------------------------------------- (631) 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(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (632) 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))))) ---------------------------------------- (633) 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(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (634) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (635) 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(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (636) 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)))))) ---------------------------------------- (637) 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(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (638) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (639) 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(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (640) 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))))))) ---------------------------------------- (641) 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(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (642) 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, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) ---------------------------------------- (643) YES ---------------------------------------- (644) 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (645) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (646) 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(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (647) QReductionProof (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_primMinusNatS2(Zero, Succ(x0)) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primMinusNatS2(Zero, Zero) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) ---------------------------------------- (648) 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(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (649) 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))))) ---------------------------------------- (650) 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(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (651) 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)))))) ---------------------------------------- (652) 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(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (653) 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))))))) ---------------------------------------- (654) 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(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (655) 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)))))) ---------------------------------------- (656) 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(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (657) 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)))))) ---------------------------------------- (658) 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(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (659) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (660) 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(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (661) 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))))) ---------------------------------------- (662) 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(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (663) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (664) 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(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (665) 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))))) ---------------------------------------- (666) 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(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS1 -> Zero The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primEqInt(Pos(Succ(x0))) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (667) 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, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) ---------------------------------------- (668) YES ---------------------------------------- (669) 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_primModNatS01(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_primModNatS01(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_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Zero, vuz5200) -> Zero new_primModNatS1(Succ(Zero), Zero) -> new_primModNatS1(new_primMinusNatS1, Zero) new_primModNatS1(Succ(Succ(vuz53000)), Zero) -> new_primModNatS1(new_primMinusNatS0(vuz53000), Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primMinusNatS1 -> Zero new_primMinusNatS0(vuz31000) -> Succ(vuz31000) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (670) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (671) Obligation: Q DP problem: The TRS P consists of the following rules: new_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_primModNatS01(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_primModNatS01(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_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primMinusNatS1 new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primMinusNatS0(x0) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (672) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. new_primMinusNatS1 new_primMinusNatS0(x0) ---------------------------------------- (673) 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_primModNatS01(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_primModNatS01(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_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (674) 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_primModNatS01(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(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(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_primModNatS02(Zero, Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))))) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(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_primModNatS01(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_primModNatS02(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_primModNatS02(Succ(x2), Zero))), Integer(Pos(Succ(Succ(Zero)))), 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(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)))))) ---------------------------------------- (675) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(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(Zero)))), Integer(Pos(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS02(Zero, Zero))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(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_primModNatS02(Succ(x2), Zero))), Integer(Pos(Succ(Succ(Zero)))), 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))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (676) 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_primModNatS02(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)))))) ---------------------------------------- (677) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(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_primModNatS01(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_primModNatS02(Succ(x2), Zero))), Integer(Pos(Succ(Succ(Zero)))), 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(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (678) 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_primModNatS02(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))))))) ---------------------------------------- (679) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(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_primModNatS01(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(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(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (680) 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)))))) ---------------------------------------- (681) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(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_primModNatS01(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(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(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (682) 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)))))) ---------------------------------------- (683) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(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_primModNatS01(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(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))))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (684) 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))))))) ---------------------------------------- (685) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(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_primModNatS01(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(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (686) 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)))))) ---------------------------------------- (687) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(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_primModNatS01(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(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (688) 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))))))) ---------------------------------------- (689) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(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_primModNatS01(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(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (690) 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)))))) ---------------------------------------- (691) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (692) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (693) 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_primModNatS01(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_primModNatS01(x0, x1, x0, x1)))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(x0)))), Integer(Neg(Succ(Succ(x1))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (694) 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_primModNatS01(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(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS02(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_primModNatS02(Zero, 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_primModNatS01(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_primModNatS01(Succ(x2), Succ(x3), x2, x3))))) (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_primModNatS02(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_primModNatS02(Succ(x2), 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)))))) ---------------------------------------- (695) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero))))) -> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS02(Zero, 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_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) 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_primModNatS02(Succ(x2), 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (696) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (697) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS02(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (698) 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_primModNatS02(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)))))) ---------------------------------------- (699) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (700) 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)))))) ---------------------------------------- (701) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (702) 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)))))) ---------------------------------------- (703) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (704) 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_primModNatS01(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(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(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_primModNatS02(Zero, Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))))) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(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_primModNatS01(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(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(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_primModNatS02(Succ(x2), Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2))))))) (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)))))) ---------------------------------------- (705) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero)))), Integer(Neg(Succ(Succ(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Zero, Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Zero))))) new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(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(Zero))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS02(Succ(x2), Zero))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(x2)))))) 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (706) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 3 SCCs with 1 less node. ---------------------------------------- (707) Complex Obligation (AND) ---------------------------------------- (708) 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_primModNatS02(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (709) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (710) 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_primModNatS02(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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (711) 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_primModNatS02(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))))))) ---------------------------------------- (712) 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (713) 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))))))) ---------------------------------------- (714) 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (715) 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))))))) ---------------------------------------- (716) 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (717) 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_primModNatS01(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_primModNatS01(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_primModNatS01(x24, x23, x26, x27)=Succ(Succ(Succ(x11))) which results in the following new constraints: (6) (new_primModNatS02(x29, x28)=Succ(Succ(Succ(x11))) & x29=Zero & x28=Zero & Zero=x28 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x29)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x29)), Succ(Zero)))))) (7) (new_primModNatS01(x33, x32, x31, x30)=Succ(Succ(Succ(x11))) & x33=Succ(x31) & x32=Succ(x30) & Zero=x32 & (\/x34:new_primModNatS01(x33, x32, x31, x30)=Succ(Succ(Succ(x34))) & x33=x31 & x32=x30 & Zero=x32 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x33)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x33)), Succ(Zero)))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x33)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(x33)), Succ(Zero)))))) (8) (new_primModNatS02(x37, x36)=Succ(Succ(Succ(x11))) & x37=Succ(x35) & 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(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(Zero)), 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(Succ(x35))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(Succ(x35))), 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_primModNatS01(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_primModNatS01(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_primModNatS01(x51, x50, x53, x54)=Succ(x46) which results in the following new constraints: (9) (new_primModNatS02(x56, x55)=Succ(x46) & x56=Zero & x55=Zero & Zero=x55 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x56)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x56)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x56)))))))) (10) (new_primModNatS01(x60, x59, x58, x57)=Succ(x46) & x60=Succ(x58) & x59=Succ(x57) & Zero=x59 & (\/x61:new_primModNatS01(x60, x59, x58, x57)=Succ(x61) & x60=x58 & x59=x57 & Zero=x59 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x60)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x60)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x60)))))))) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x60)))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(x60)), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(x60)))))))) (11) (new_primModNatS02(x64, x63)=Succ(x46) & x64=Succ(x62) & 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(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 (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(Succ(x62))))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x62))), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x62))))))))) 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(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x35))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(new_primModNatS1(Succ(Succ(Succ(x35))), 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(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)))))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x62))))))), Integer(Neg(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS1(Succ(Succ(Succ(x62))), Succ(Zero)))), Integer(Neg(Succ(Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x62))))))))) 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. ---------------------------------------- (718) 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (719) 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (720) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (721) 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (722) 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)))))) ---------------------------------------- (723) 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (724) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (725) Obligation: Q DP problem: The TRS P consists of the following rules: new_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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (726) 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_primModNatS01(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_primModNatS01(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_primModNatS01(x24, x23, x26, x27)=Succ(Succ(Succ(x4))) which results in the following new constraints: (6) (new_primModNatS02(x29, x28)=Succ(Succ(Succ(x4))) & x29=Zero & x28=Zero & Zero=x28 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x29)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(x29)), Succ(Zero)))))) (7) (new_primModNatS01(x33, x32, x31, x30)=Succ(Succ(Succ(x4))) & x33=Succ(x31) & x32=Succ(x30) & Zero=x32 & (\/x34:new_primModNatS01(x33, x32, x31, x30)=Succ(Succ(Succ(x34))) & x33=x31 & x32=x30 & Zero=x32 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x33)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(x33)), Succ(Zero)))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x33)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(x33)), Succ(Zero)))))) (8) (new_primModNatS02(x37, x36)=Succ(Succ(Succ(x4))) & x37=Succ(x35) & 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(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(Zero)), 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(Succ(x35))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(Succ(x35))), 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_primModNatS01(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_primModNatS01(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_primModNatS01(x51, x50, x53, x54)=Succ(x46) which results in the following new constraints: (9) (new_primModNatS02(x56, x55)=Succ(x46) & x56=Zero & x55=Zero & Zero=x55 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x56)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x56)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x56)))))))) (10) (new_primModNatS01(x60, x59, x58, x57)=Succ(x46) & x60=Succ(x58) & x59=Succ(x57) & Zero=x59 & (\/x61:new_primModNatS01(x60, x59, x58, x57)=Succ(x61) & x60=x58 & x59=x57 & Zero=x59 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x60)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x60)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x60)))))))) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x60)))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(x60)), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(x60)))))))) (11) (new_primModNatS02(x64, x63)=Succ(x46) & x64=Succ(x62) & 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(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 (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(Succ(x62))))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x62))), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x62))))))))) 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(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(Zero)), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x35))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(new_primModNatS1(Succ(Succ(Succ(x35))), 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(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(Neg(Succ(Succ(Succ(Succ(Succ(x62))))))), Integer(Pos(Succ(Succ(Zero)))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS1(Succ(Succ(Succ(x62))), Succ(Zero)))), Integer(Pos(Succ(Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x62))))))))) *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. ---------------------------------------- (727) 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(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (728) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (729) 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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(x5), Succ(x4), x5, x4)))) which results in the following constraint: (1) (new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(x2), Succ(x3), x2, x3))), Integer(Neg(Succ(Succ(Succ(x3))))), Integer(Pos(Succ(Succ(Succ(x2))))))) (4) (False=False & Pos(new_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(x43, x44, x2, x3)=Succ(x41) which results in the following new constraints: (6) (new_primModNatS02(x46, x45)=Succ(x41) & Succ(Zero)=x46 & Succ(Zero)=x45 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) (7) (new_primModNatS01(x50, x49, x48, x47)=Succ(x41) & Succ(Succ(x48))=x50 & Succ(Succ(x47))=x49 & (\/x51:new_primModNatS01(x50, x49, x48, x47)=Succ(x51) & Succ(x48)=x50 & Succ(x47)=x49 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x48))))), Integer(Neg(Succ(Succ(Succ(x47))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(x48), Succ(x47), x48, x47))), Integer(Neg(Succ(Succ(Succ(x47))))), Integer(Pos(Succ(Succ(Succ(x48))))))) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x48)))))), Integer(Neg(Succ(Succ(Succ(Succ(x47)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x48)), Succ(Succ(x47)), Succ(x48), Succ(x47)))), Integer(Neg(Succ(Succ(Succ(Succ(x47)))))), Integer(Pos(Succ(Succ(Succ(Succ(x48)))))))) (8) (new_primModNatS02(x54, x53)=Succ(x41) & Succ(Succ(x52))=x54 & Succ(Zero)=x53 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x52)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x52)), Succ(Zero), Succ(x52), Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x52)))))))) (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_primModNatS01(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_primModNatS02(x46, x45)=Succ(x41) which results in the following new constraint: (10) (new_primModNatS1(new_primMinusNatS2(Succ(x59), Succ(x58)), Succ(x58))=Succ(x41) & Succ(Zero)=x59 & Succ(Zero)=x58 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_primModNatS01(x50, x49, x48, x47)=Succ(x41) & Succ(Succ(x48))=x50 & Succ(Succ(x47))=x49 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x48)))))), Integer(Neg(Succ(Succ(Succ(Succ(x47)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x48)), Succ(Succ(x47)), Succ(x48), Succ(x47)))), Integer(Neg(Succ(Succ(Succ(Succ(x47)))))), Integer(Pos(Succ(Succ(Succ(Succ(x48)))))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(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(Succ(x52))=x78 & Succ(Zero)=x77 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x52)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x52)), Succ(Zero), Succ(x52), Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x52)))))))) 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_primModNatS01(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(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x50, x49, x48, x47)=Succ(x41) which results in the following new constraints: (15) (new_primModNatS02(x65, x64)=Succ(x41) & Succ(Succ(Zero))=x65 & Succ(Succ(Zero))=x64 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))) (16) (new_primModNatS01(x69, x68, x67, x66)=Succ(x41) & Succ(Succ(Succ(x67)))=x69 & Succ(Succ(Succ(x66)))=x68 & (\/x70:new_primModNatS01(x69, x68, x67, x66)=Succ(x70) & Succ(Succ(x67))=x69 & Succ(Succ(x66))=x68 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x67)))))), Integer(Neg(Succ(Succ(Succ(Succ(x66)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x67)), Succ(Succ(x66)), Succ(x67), Succ(x66)))), Integer(Neg(Succ(Succ(Succ(Succ(x66)))))), Integer(Pos(Succ(Succ(Succ(Succ(x67)))))))) ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x67))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x66))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x67))), Succ(Succ(Succ(x66))), Succ(Succ(x67)), Succ(Succ(x66))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x66))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x67))))))))) (17) (new_primModNatS02(x73, x72)=Succ(x41) & Succ(Succ(Succ(x71)))=x73 & Succ(Succ(Zero))=x72 ==> new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x71))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x71))), Succ(Succ(Zero)), Succ(Succ(x71)), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x71))))))))) (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_primModNatS01(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(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(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 (16) using rules (III), (IV) which results in the following new constraint: (20) (new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x67))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x66))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x67))), Succ(Succ(Succ(x66))), Succ(Succ(x67)), Succ(Succ(x66))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x66))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x67))))))))) 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(Succ(x71))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x71))), Succ(Succ(Zero)), Succ(Succ(x71)), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x71))))))))) 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_primModNatS01(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(Succ(x52)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x52)), Succ(Zero), Succ(x52), Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x52)))))))) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(x15), Succ(x14), x15, x14))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x83, x84, x15, x14)=Succ(Succ(Succ(x17))) which results in the following new constraints: (3) (new_primModNatS02(x86, x85)=Succ(Succ(Succ(x17))) & Succ(Zero)=x86 & Succ(Zero)=x85 ==> 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_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) (4) (new_primModNatS01(x90, x89, x88, x87)=Succ(Succ(Succ(x17))) & Succ(Succ(x88))=x90 & Succ(Succ(x87))=x89 & (\/x91:new_primModNatS01(x90, x89, x88, x87)=Succ(Succ(Succ(x91))) & Succ(x88)=x90 & Succ(x87)=x89 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(x87))))), Integer(Pos(Succ(Succ(Succ(x88))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x87))))), Integer(Pos(new_primModNatS01(Succ(x88), Succ(x87), x88, x87))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x87)))))), Integer(Pos(Succ(Succ(Succ(Succ(x88)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x87)))))), Integer(Pos(new_primModNatS01(Succ(Succ(x88)), Succ(Succ(x87)), Succ(x88), Succ(x87)))))) (5) (new_primModNatS02(x94, x93)=Succ(Succ(Succ(x17))) & Succ(Succ(x92))=x94 & Succ(Zero)=x93 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x92)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Succ(x92)), Succ(Zero), Succ(x92), 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_primModNatS01(Succ(Zero), Succ(Succ(x95)), Zero, Succ(x95)))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x86, x85)=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(Zero)=x99 & Succ(Zero)=x98 ==> 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_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS01(x90, x89, x88, x87)=Succ(Succ(Succ(x17))) & Succ(Succ(x88))=x90 & Succ(Succ(x87))=x89 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x87)))))), Integer(Pos(Succ(Succ(Succ(Succ(x88)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x87)))))), Integer(Pos(new_primModNatS01(Succ(Succ(x88)), Succ(Succ(x87)), Succ(x88), Succ(x87)))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(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(Succ(x92))=x118 & Succ(Zero)=x117 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x92)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Succ(x92)), Succ(Zero), Succ(x92), 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_primModNatS01(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(Zero))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x90, x89, x88, x87)=Succ(Succ(Succ(x17))) which results in the following new constraints: (12) (new_primModNatS02(x105, x104)=Succ(Succ(Succ(x17))) & Succ(Succ(Zero))=x105 & Succ(Succ(Zero))=x104 ==> 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_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) (13) (new_primModNatS01(x109, x108, x107, x106)=Succ(Succ(Succ(x17))) & Succ(Succ(Succ(x107)))=x109 & Succ(Succ(Succ(x106)))=x108 & (\/x110:new_primModNatS01(x109, x108, x107, x106)=Succ(Succ(Succ(x110))) & Succ(Succ(x107))=x109 & Succ(Succ(x106))=x108 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(x106)))))), Integer(Pos(Succ(Succ(Succ(Succ(x107)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x106)))))), Integer(Pos(new_primModNatS01(Succ(Succ(x107)), Succ(Succ(x106)), Succ(x107), Succ(x106)))))) ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x106))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x107))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x106))))))), Integer(Pos(new_primModNatS01(Succ(Succ(Succ(x107))), Succ(Succ(Succ(x106))), Succ(Succ(x107)), Succ(Succ(x106))))))) (14) (new_primModNatS02(x113, x112)=Succ(Succ(Succ(x17))) & Succ(Succ(Succ(x111)))=x113 & Succ(Succ(Zero))=x112 ==> new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x111))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS01(Succ(Succ(Succ(x111))), Succ(Succ(Zero)), Succ(Succ(x111)), 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_primModNatS01(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(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), 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(x106))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x107))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x106))))))), Integer(Pos(new_primModNatS01(Succ(Succ(Succ(x107))), Succ(Succ(Succ(x106))), Succ(Succ(x107)), Succ(Succ(x106))))))) 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(Succ(x111))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS01(Succ(Succ(Succ(x111))), Succ(Succ(Zero)), Succ(Succ(x111)), 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_primModNatS01(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(Succ(x92)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Succ(x92)), Succ(Zero), Succ(x92), 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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(x29), Succ(x28), x29, x28)))) which results in the following constraint: (1) (new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(x26), Succ(x27), x26, x27))), Integer(Pos(Succ(Succ(Succ(x27))))), Integer(Neg(Succ(Succ(Succ(x26))))))) (4) (False=False & Neg(new_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(x126, x127, x26, x27)=Succ(x125) which results in the following new constraints: (6) (new_primModNatS02(x129, x128)=Succ(x125) & Succ(Zero)=x129 & Succ(Zero)=x128 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) (7) (new_primModNatS01(x133, x132, x131, x130)=Succ(x125) & Succ(Succ(x131))=x133 & Succ(Succ(x130))=x132 & (\/x134:new_primModNatS01(x133, x132, x131, x130)=Succ(x134) & Succ(x131)=x133 & Succ(x130)=x132 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x131))))), Integer(Pos(Succ(Succ(Succ(x130))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(x131), Succ(x130), x131, x130))), Integer(Pos(Succ(Succ(Succ(x130))))), Integer(Neg(Succ(Succ(Succ(x131))))))) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x131)))))), Integer(Pos(Succ(Succ(Succ(Succ(x130)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x131)), Succ(Succ(x130)), Succ(x131), Succ(x130)))), Integer(Pos(Succ(Succ(Succ(Succ(x130)))))), Integer(Neg(Succ(Succ(Succ(Succ(x131)))))))) (8) (new_primModNatS02(x137, x136)=Succ(x125) & Succ(Succ(x135))=x137 & Succ(Zero)=x136 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x135)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x135)), Succ(Zero), Succ(x135), Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x135)))))))) (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_primModNatS01(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_primModNatS02(x129, x128)=Succ(x125) which results in the following new constraint: (10) (new_primModNatS1(new_primMinusNatS2(Succ(x142), Succ(x141)), Succ(x141))=Succ(x125) & Succ(Zero)=x142 & Succ(Zero)=x141 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) We simplified constraint (7) using rule (IV) which results in the following new constraint: (11) (new_primModNatS01(x133, x132, x131, x130)=Succ(x125) & Succ(Succ(x131))=x133 & Succ(Succ(x130))=x132 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x131)))))), Integer(Pos(Succ(Succ(Succ(Succ(x130)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x131)), Succ(Succ(x130)), Succ(x131), Succ(x130)))), Integer(Pos(Succ(Succ(Succ(Succ(x130)))))), Integer(Neg(Succ(Succ(Succ(Succ(x131)))))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(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(Succ(x135))=x161 & Succ(Zero)=x160 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x135)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x135)), Succ(Zero), Succ(x135), Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x135)))))))) 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_primModNatS01(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(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) We simplified constraint (11) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x133, x132, x131, x130)=Succ(x125) which results in the following new constraints: (15) (new_primModNatS02(x148, x147)=Succ(x125) & Succ(Succ(Zero))=x148 & Succ(Succ(Zero))=x147 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))) (16) (new_primModNatS01(x152, x151, x150, x149)=Succ(x125) & Succ(Succ(Succ(x150)))=x152 & Succ(Succ(Succ(x149)))=x151 & (\/x153:new_primModNatS01(x152, x151, x150, x149)=Succ(x153) & Succ(Succ(x150))=x152 & Succ(Succ(x149))=x151 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x150)))))), Integer(Pos(Succ(Succ(Succ(Succ(x149)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x150)), Succ(Succ(x149)), Succ(x150), Succ(x149)))), Integer(Pos(Succ(Succ(Succ(Succ(x149)))))), Integer(Neg(Succ(Succ(Succ(Succ(x150)))))))) ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x150))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x149))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x150))), Succ(Succ(Succ(x149))), Succ(Succ(x150)), Succ(Succ(x149))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x149))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x150))))))))) (17) (new_primModNatS02(x156, x155)=Succ(x125) & Succ(Succ(Succ(x154)))=x156 & Succ(Succ(Zero))=x155 ==> new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x154))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x154))), Succ(Succ(Zero)), Succ(Succ(x154)), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x154))))))))) (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_primModNatS01(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(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(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 (16) using rules (III), (IV) which results in the following new constraint: (20) (new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x150))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x149))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x150))), Succ(Succ(Succ(x149))), Succ(Succ(x150)), Succ(Succ(x149))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x149))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x150))))))))) 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(Succ(x154))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x154))), Succ(Succ(Zero)), Succ(Succ(x154)), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x154))))))))) 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_primModNatS01(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(Succ(x135)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x135)), Succ(Zero), Succ(x135), Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x135)))))))) 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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(x31), Succ(x30), x31, x30))))) We simplified constraint (2) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x166, x167, x31, x30)=Succ(Succ(Succ(x33))) which results in the following new constraints: (3) (new_primModNatS02(x169, x168)=Succ(Succ(Succ(x33))) & Succ(Zero)=x169 & Succ(Zero)=x168 ==> 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_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) (4) (new_primModNatS01(x173, x172, x171, x170)=Succ(Succ(Succ(x33))) & Succ(Succ(x171))=x173 & Succ(Succ(x170))=x172 & (\/x174:new_primModNatS01(x173, x172, x171, x170)=Succ(Succ(Succ(x174))) & Succ(x171)=x173 & Succ(x170)=x172 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(x170))))), Integer(Neg(Succ(Succ(Succ(x171))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(x170))))), Integer(Neg(new_primModNatS01(Succ(x171), Succ(x170), x171, x170))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x170)))))), Integer(Neg(Succ(Succ(Succ(Succ(x171)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x170)))))), Integer(Neg(new_primModNatS01(Succ(Succ(x171)), Succ(Succ(x170)), Succ(x171), Succ(x170)))))) (5) (new_primModNatS02(x177, x176)=Succ(Succ(Succ(x33))) & Succ(Succ(x175))=x177 & Succ(Zero)=x176 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x175)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Succ(x175)), Succ(Zero), Succ(x175), 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_primModNatS01(Succ(Zero), Succ(Succ(x178)), Zero, Succ(x178)))))) We simplified constraint (3) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(x169, x168)=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(Zero)=x182 & Succ(Zero)=x181 ==> 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_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) We simplified constraint (4) using rule (IV) which results in the following new constraint: (8) (new_primModNatS01(x173, x172, x171, x170)=Succ(Succ(Succ(x33))) & Succ(Succ(x171))=x173 & Succ(Succ(x170))=x172 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x170)))))), Integer(Neg(Succ(Succ(Succ(Succ(x171)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x170)))))), Integer(Neg(new_primModNatS01(Succ(Succ(x171)), Succ(Succ(x170)), Succ(x171), Succ(x170)))))) We simplified constraint (5) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS02(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(Succ(x175))=x201 & Succ(Zero)=x200 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x175)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Succ(x175)), Succ(Zero), Succ(x175), 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_primModNatS01(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(Zero))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) We simplified constraint (8) using rule (V) (with possible (I) afterwards) using induction on new_primModNatS01(x173, x172, x171, x170)=Succ(Succ(Succ(x33))) which results in the following new constraints: (12) (new_primModNatS02(x188, x187)=Succ(Succ(Succ(x33))) & Succ(Succ(Zero))=x188 & Succ(Succ(Zero))=x187 ==> 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_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) (13) (new_primModNatS01(x192, x191, x190, x189)=Succ(Succ(Succ(x33))) & Succ(Succ(Succ(x190)))=x192 & Succ(Succ(Succ(x189)))=x191 & (\/x193:new_primModNatS01(x192, x191, x190, x189)=Succ(Succ(Succ(x193))) & Succ(Succ(x190))=x192 & Succ(Succ(x189))=x191 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(x189)))))), Integer(Neg(Succ(Succ(Succ(Succ(x190)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x189)))))), Integer(Neg(new_primModNatS01(Succ(Succ(x190)), Succ(Succ(x189)), Succ(x190), Succ(x189)))))) ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x189))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x190))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x189))))))), Integer(Neg(new_primModNatS01(Succ(Succ(Succ(x190))), Succ(Succ(Succ(x189))), Succ(Succ(x190)), Succ(Succ(x189))))))) (14) (new_primModNatS02(x196, x195)=Succ(Succ(Succ(x33))) & Succ(Succ(Succ(x194)))=x196 & Succ(Succ(Zero))=x195 ==> new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x194))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS01(Succ(Succ(Succ(x194))), Succ(Succ(Zero)), Succ(Succ(x194)), 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_primModNatS01(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(Zero)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), 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(x189))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x190))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x189))))))), Integer(Neg(new_primModNatS01(Succ(Succ(Succ(x190))), Succ(Succ(Succ(x189))), Succ(Succ(x190)), Succ(Succ(x189))))))) 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(Succ(x194))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS01(Succ(Succ(Succ(x194))), Succ(Succ(Zero)), Succ(Succ(x194)), 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_primModNatS01(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(Succ(x175)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Succ(x175)), Succ(Zero), Succ(x175), 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_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(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(Succ(Succ(x67))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x66))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x67))), Succ(Succ(Succ(x66))), Succ(Succ(x67)), Succ(Succ(x66))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x66))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x67))))))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x71))))))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(Succ(x71))), Succ(Succ(Zero)), Succ(Succ(x71)), Succ(Zero)))), Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x71))))))))) *(new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(x52)))))), Integer(Neg(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(Succ(Succ(x52)), Succ(Zero), Succ(x52), Zero))), Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x52)))))))) *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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(Zero), Succ(Succ(x95)), Zero, Succ(x95)))))) *(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_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) *(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_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Succ(x106))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x107))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x106))))))), Integer(Pos(new_primModNatS01(Succ(Succ(Succ(x107))), Succ(Succ(Succ(x106))), Succ(Succ(x107)), Succ(Succ(x106))))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x111))))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(new_primModNatS01(Succ(Succ(Succ(x111))), Succ(Succ(Zero)), Succ(Succ(x111)), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(Succ(Succ(Succ(Succ(x92)))))))_>=_new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Zero))))), Integer(Pos(new_primModNatS01(Succ(Succ(x92)), Succ(Zero), Succ(x92), Zero))))) *new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(x2))))), Integer(Pos(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(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_primModNatS01(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_primModNatS01(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(Zero))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Zero))))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Zero)))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(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(Succ(Succ(x150))))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x149))))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x150))), Succ(Succ(Succ(x149))), Succ(Succ(x150)), Succ(Succ(x149))))), Integer(Pos(Succ(Succ(Succ(Succ(Succ(x149))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x150))))))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(Succ(x154))))))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(Succ(x154))), Succ(Succ(Zero)), Succ(Succ(x154)), Succ(Zero)))), Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x154))))))))) *(new_gcd0Gcd'00(Integer(Neg(Succ(Succ(Succ(Succ(x135)))))), Integer(Pos(Succ(Succ(Succ(Zero))))))_>=_new_gcd0Gcd'10(new_primEqInt(Neg(new_primModNatS01(Succ(Succ(x135)), Succ(Zero), Succ(x135), Zero))), Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x135)))))))) *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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(Zero), Succ(Succ(x178)), Zero, Succ(x178)))))) *(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_primModNatS01(Succ(Zero), Succ(Zero), Zero, Zero))))) *(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_primModNatS01(Succ(Succ(Zero)), Succ(Succ(Zero)), Succ(Zero), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Succ(x189))))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x190))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Succ(x189))))))), Integer(Neg(new_primModNatS01(Succ(Succ(Succ(x190))), Succ(Succ(Succ(x189))), Succ(Succ(x190)), Succ(Succ(x189))))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(Succ(Succ(Succ(Succ(Succ(x194))))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Succ(Zero)))))), Integer(Neg(new_primModNatS01(Succ(Succ(Succ(x194))), Succ(Succ(Zero)), Succ(Succ(x194)), Succ(Zero)))))) *(new_gcd0Gcd'10(False, Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(Succ(Succ(Succ(Succ(x175)))))))_>=_new_gcd0Gcd'00(Integer(Pos(Succ(Succ(Succ(Zero))))), Integer(Neg(new_primModNatS01(Succ(Succ(x175)), Succ(Zero), Succ(x175), 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'00(Integer(Pos(Succ(Succ(Succ(x2))))), Integer(Neg(Succ(Succ(Succ(x3)))))) -> new_gcd0Gcd'10(new_primEqInt(Pos(new_primModNatS01(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_primModNatS01(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_primModNatS01(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_primModNatS01(Succ(x2), Succ(x3), x2, x3)))) The TRS R consists of the following rules: new_primModNatS1(Succ(Zero), Succ(vuz52000)) -> Succ(Zero) new_primModNatS1(Succ(Succ(vuz53000)), Succ(vuz52000)) -> new_primModNatS01(vuz53000, vuz52000, vuz53000, vuz52000) new_primModNatS01(vuz98, vuz99, Zero, Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS02(vuz98, vuz99) -> new_primModNatS1(new_primMinusNatS2(Succ(vuz98), Succ(vuz99)), Succ(vuz99)) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Succ(vuz1010)) -> new_primModNatS01(vuz98, vuz99, vuz1000, vuz1010) new_primModNatS01(vuz98, vuz99, Succ(vuz1000), Zero) -> new_primModNatS02(vuz98, vuz99) new_primModNatS01(vuz98, vuz99, Zero, Succ(vuz1010)) -> Succ(Succ(vuz98)) new_primMinusNatS2(Succ(vuz780), Succ(vuz790)) -> new_primMinusNatS2(vuz780, vuz790) new_primModNatS1(Zero, vuz5200) -> Zero new_primMinusNatS2(Zero, Zero) -> Zero new_primMinusNatS2(Zero, Succ(vuz790)) -> Zero new_primMinusNatS2(Succ(vuz780), Zero) -> Succ(vuz780) new_primEqInt(Pos(Succ(vuz26000))) -> False new_primEqInt(Pos(Zero)) -> True new_primEqInt(Neg(Zero)) -> True new_primEqInt(Neg(Succ(vuz26000))) -> False The set Q consists of the following terms: new_primModNatS1(Succ(Zero), Succ(x0)) new_primMinusNatS2(Zero, Succ(x0)) new_primEqInt(Neg(Succ(x0))) new_primModNatS02(x0, x1) new_primMinusNatS2(Succ(x0), Zero) new_primModNatS01(x0, x1, Zero, Succ(x2)) new_primEqInt(Pos(Zero)) new_primModNatS1(Succ(Succ(x0)), Succ(x1)) new_primModNatS1(Succ(Succ(x0)), Zero) new_primMinusNatS2(Succ(x0), Succ(x1)) new_primEqInt(Pos(Succ(x0))) new_primMinusNatS2(Zero, Zero) new_primModNatS1(Succ(Zero), Zero) new_primModNatS1(Zero, x0) new_primEqInt(Neg(Zero)) new_primModNatS01(x0, x1, Succ(x2), Zero) new_primModNatS01(x0, x1, Succ(x2), Succ(x3)) new_primModNatS01(x0, x1, Zero, Zero) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (731) Obligation: Q DP problem: The TRS P consists of the following rules: new_primPlusNat(Succ(vuz2700), Succ(vuz30000)) -> new_primPlusNat(vuz2700, vuz30000) R is empty. Q is empty. We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (732) 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(vuz2700), Succ(vuz30000)) -> new_primPlusNat(vuz2700, vuz30000) The graph contains the following edges 1 > 1, 2 > 2 ---------------------------------------- (733) YES ---------------------------------------- (734) Narrow (COMPLETE) Haskell To QDPs digraph dp_graph { node [outthreshold=100, inthreshold=100];1[label="product",fontsize=16,color="grey",shape="box"];1 -> 3[label="",style="dashed", color="grey", weight=3]; 3[label="product vuz3",fontsize=16,color="black",shape="triangle"];3 -> 4[label="",style="solid", color="black", weight=3]; 4[label="foldl' (*) (fromInt (Pos (Succ Zero))) vuz3",fontsize=16,color="burlywood",shape="box"];1085[label="vuz3/vuz30 : vuz31",fontsize=10,color="white",style="solid",shape="box"];4 -> 1085[label="",style="solid", color="burlywood", weight=9]; 1085 -> 5[label="",style="solid", color="burlywood", weight=3]; 1086[label="vuz3/[]",fontsize=10,color="white",style="solid",shape="box"];4 -> 1086[label="",style="solid", color="burlywood", weight=9]; 1086 -> 6[label="",style="solid", color="burlywood", weight=3]; 5[label="foldl' (*) (fromInt (Pos (Succ Zero))) (vuz30 : vuz31)",fontsize=16,color="black",shape="box"];5 -> 7[label="",style="solid", color="black", weight=3]; 6[label="foldl' (*) (fromInt (Pos (Succ Zero))) []",fontsize=16,color="black",shape="box"];6 -> 8[label="",style="solid", color="black", weight=3]; 7[label="(foldl' (*) $! (*) fromInt (Pos (Succ Zero)) vuz30)",fontsize=16,color="black",shape="box"];7 -> 9[label="",style="solid", color="black", weight=3]; 8[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];1087[label="fromInt :: -> Int Double",fontsize=10,color="white",style="solid",shape="box"];8 -> 1087[label="",style="solid", color="blue", weight=9]; 1087 -> 10[label="",style="solid", color="blue", weight=3]; 1088[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];8 -> 1088[label="",style="solid", color="blue", weight=9]; 1088 -> 11[label="",style="solid", color="blue", weight=3]; 1089[label="fromInt :: -> Int (Ratio a)",fontsize=10,color="white",style="solid",shape="box"];8 -> 1089[label="",style="solid", color="blue", weight=9]; 1089 -> 12[label="",style="solid", color="blue", weight=3]; 1090[label="fromInt :: -> Int Float",fontsize=10,color="white",style="solid",shape="box"];8 -> 1090[label="",style="solid", color="blue", weight=9]; 1090 -> 13[label="",style="solid", color="blue", weight=3]; 1091[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];8 -> 1091[label="",style="solid", color="blue", weight=9]; 1091 -> 14[label="",style="solid", color="blue", weight=3]; 9[label="((*) fromInt (Pos (Succ Zero)) vuz30 `seq` foldl' (*) ((*) fromInt (Pos (Succ Zero)) vuz30))",fontsize=16,color="black",shape="box"];9 -> 15[label="",style="solid", color="black", weight=3]; 10[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];10 -> 16[label="",style="solid", color="black", weight=3]; 11[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];11 -> 17[label="",style="solid", color="black", weight=3]; 12[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];12 -> 18[label="",style="solid", color="black", weight=3]; 13[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];13 -> 19[label="",style="solid", color="black", weight=3]; 14[label="fromInt (Pos (Succ Zero))",fontsize=16,color="black",shape="triangle"];14 -> 20[label="",style="solid", color="black", weight=3]; 15 -> 21[label="",style="dashed", color="red", weight=0]; 15[label="enforceWHNF (WHNF ((*) fromInt (Pos (Succ Zero)) vuz30)) (foldl' (*) ((*) fromInt (Pos (Succ Zero)) vuz30)) vuz31",fontsize=16,color="magenta"];15 -> 22[label="",style="dashed", color="magenta", weight=3]; 15 -> 23[label="",style="dashed", color="magenta", weight=3]; 16[label="primIntToDouble (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];16 -> 24[label="",style="solid", color="black", weight=3]; 17[label="Pos (Succ Zero)",fontsize=16,color="green",shape="box"];18[label="intToRatio (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];18 -> 25[label="",style="solid", color="black", weight=3]; 19[label="primIntToFloat (Pos (Succ Zero))",fontsize=16,color="black",shape="box"];19 -> 26[label="",style="solid", color="black", weight=3]; 20[label="Integer (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];22[label="vuz31",fontsize=16,color="green",shape="box"];23[label="(*) fromInt (Pos (Succ Zero)) vuz30",fontsize=16,color="blue",shape="box"];1092[label="* :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];23 -> 1092[label="",style="solid", color="blue", weight=9]; 1092 -> 27[label="",style="solid", color="blue", weight=3]; 1093[label="* :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];23 -> 1093[label="",style="solid", color="blue", weight=9]; 1093 -> 28[label="",style="solid", color="blue", weight=3]; 1094[label="* :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];23 -> 1094[label="",style="solid", color="blue", weight=9]; 1094 -> 29[label="",style="solid", color="blue", weight=3]; 1095[label="* :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];23 -> 1095[label="",style="solid", color="blue", weight=9]; 1095 -> 30[label="",style="solid", color="blue", weight=3]; 1096[label="* :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];23 -> 1096[label="",style="solid", color="blue", weight=9]; 1096 -> 31[label="",style="solid", color="blue", weight=3]; 21[label="enforceWHNF (WHNF vuz7) (foldl' (*) vuz7) vuz8",fontsize=16,color="black",shape="triangle"];21 -> 32[label="",style="solid", color="black", weight=3]; 24[label="Double (Pos (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];25[label="fromInt (Pos (Succ Zero)) :% fromInt (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];25 -> 33[label="",style="dashed", color="green", weight=3]; 25 -> 34[label="",style="dashed", color="green", weight=3]; 26[label="Float (Pos (Succ Zero)) (Pos (Succ Zero))",fontsize=16,color="green",shape="box"];27 -> 35[label="",style="dashed", color="red", weight=0]; 27[label="(*) fromInt (Pos (Succ Zero)) vuz30",fontsize=16,color="magenta"];27 -> 36[label="",style="dashed", color="magenta", weight=3]; 28 -> 37[label="",style="dashed", color="red", weight=0]; 28[label="(*) fromInt (Pos (Succ Zero)) vuz30",fontsize=16,color="magenta"];28 -> 38[label="",style="dashed", color="magenta", weight=3]; 29 -> 39[label="",style="dashed", color="red", weight=0]; 29[label="(*) fromInt (Pos (Succ Zero)) vuz30",fontsize=16,color="magenta"];29 -> 40[label="",style="dashed", color="magenta", weight=3]; 30 -> 41[label="",style="dashed", color="red", weight=0]; 30[label="(*) fromInt (Pos (Succ Zero)) vuz30",fontsize=16,color="magenta"];30 -> 42[label="",style="dashed", color="magenta", weight=3]; 31 -> 43[label="",style="dashed", color="red", weight=0]; 31[label="(*) fromInt (Pos (Succ Zero)) vuz30",fontsize=16,color="magenta"];31 -> 44[label="",style="dashed", color="magenta", weight=3]; 32[label="foldl' (*) vuz7 vuz8",fontsize=16,color="burlywood",shape="box"];1097[label="vuz8/vuz80 : vuz81",fontsize=10,color="white",style="solid",shape="box"];32 -> 1097[label="",style="solid", color="burlywood", weight=9]; 1097 -> 45[label="",style="solid", color="burlywood", weight=3]; 1098[label="vuz8/[]",fontsize=10,color="white",style="solid",shape="box"];32 -> 1098[label="",style="solid", color="burlywood", weight=9]; 1098 -> 46[label="",style="solid", color="burlywood", weight=3]; 33[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];1099[label="fromInt :: Int -> Int",fontsize=10,color="white",style="solid",shape="box"];33 -> 1099[label="",style="solid", color="blue", weight=9]; 1099 -> 47[label="",style="solid", color="blue", weight=3]; 1100[label="fromInt :: Int -> Integer",fontsize=10,color="white",style="solid",shape="box"];33 -> 1100[label="",style="solid", color="blue", weight=9]; 1100 -> 48[label="",style="solid", color="blue", weight=3]; 34[label="fromInt (Pos (Succ Zero))",fontsize=16,color="blue",shape="box"];1101[label="fromInt :: -> Int Int",fontsize=10,color="white",style="solid",shape="box"];34 -> 1101[label="",style="solid", color="blue", weight=9]; 1101 -> 49[label="",style="solid", color="blue", weight=3]; 1102[label="fromInt :: -> Int Integer",fontsize=10,color="white",style="solid",shape="box"];34 -> 1102[label="",style="solid", color="blue", weight=9]; 1102 -> 50[label="",style="solid", color="blue", weight=3]; 36 -> 10[label="",style="dashed", color="red", weight=0]; 36[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];35[label="(*) vuz9 vuz30",fontsize=16,color="black",shape="triangle"];35 -> 51[label="",style="solid", color="black", weight=3]; 38 -> 11[label="",style="dashed", color="red", weight=0]; 38[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];37[label="(*) vuz10 vuz30",fontsize=16,color="black",shape="triangle"];37 -> 52[label="",style="solid", color="black", weight=3]; 40 -> 12[label="",style="dashed", color="red", weight=0]; 40[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];39[label="(*) vuz11 vuz30",fontsize=16,color="burlywood",shape="triangle"];1103[label="vuz11/vuz110 :% vuz111",fontsize=10,color="white",style="solid",shape="box"];39 -> 1103[label="",style="solid", color="burlywood", weight=9]; 1103 -> 53[label="",style="solid", color="burlywood", weight=3]; 42 -> 13[label="",style="dashed", color="red", weight=0]; 42[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];41[label="(*) vuz12 vuz30",fontsize=16,color="black",shape="triangle"];41 -> 54[label="",style="solid", color="black", weight=3]; 44 -> 14[label="",style="dashed", color="red", weight=0]; 44[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];43[label="(*) vuz13 vuz30",fontsize=16,color="burlywood",shape="triangle"];1104[label="vuz13/Integer vuz130",fontsize=10,color="white",style="solid",shape="box"];43 -> 1104[label="",style="solid", color="burlywood", weight=9]; 1104 -> 55[label="",style="solid", color="burlywood", weight=3]; 45[label="foldl' (*) vuz7 (vuz80 : vuz81)",fontsize=16,color="black",shape="box"];45 -> 56[label="",style="solid", color="black", weight=3]; 46[label="foldl' (*) vuz7 []",fontsize=16,color="black",shape="box"];46 -> 57[label="",style="solid", color="black", weight=3]; 47 -> 11[label="",style="dashed", color="red", weight=0]; 47[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];48 -> 14[label="",style="dashed", color="red", weight=0]; 48[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];49 -> 11[label="",style="dashed", color="red", weight=0]; 49[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];50 -> 14[label="",style="dashed", color="red", weight=0]; 50[label="fromInt (Pos (Succ Zero))",fontsize=16,color="magenta"];51[label="primMulDouble vuz9 vuz30",fontsize=16,color="burlywood",shape="box"];1105[label="vuz9/Double vuz90 vuz91",fontsize=10,color="white",style="solid",shape="box"];51 -> 1105[label="",style="solid", color="burlywood", weight=9]; 1105 -> 58[label="",style="solid", color="burlywood", weight=3]; 52[label="primMulInt vuz10 vuz30",fontsize=16,color="burlywood",shape="triangle"];1106[label="vuz10/Pos vuz100",fontsize=10,color="white",style="solid",shape="box"];52 -> 1106[label="",style="solid", color="burlywood", weight=9]; 1106 -> 59[label="",style="solid", color="burlywood", weight=3]; 1107[label="vuz10/Neg vuz100",fontsize=10,color="white",style="solid",shape="box"];52 -> 1107[label="",style="solid", color="burlywood", weight=9]; 1107 -> 60[label="",style="solid", color="burlywood", weight=3]; 53[label="(*) (vuz110 :% vuz111) vuz30",fontsize=16,color="burlywood",shape="box"];1108[label="vuz30/vuz300 :% vuz301",fontsize=10,color="white",style="solid",shape="box"];53 -> 1108[label="",style="solid", color="burlywood", weight=9]; 1108 -> 61[label="",style="solid", color="burlywood", weight=3]; 54[label="primMulFloat vuz12 vuz30",fontsize=16,color="burlywood",shape="box"];1109[label="vuz12/Float vuz120 vuz121",fontsize=10,color="white",style="solid",shape="box"];54 -> 1109[label="",style="solid", color="burlywood", weight=9]; 1109 -> 62[label="",style="solid", color="burlywood", weight=3]; 55[label="(*) Integer vuz130 vuz30",fontsize=16,color="burlywood",shape="box"];1110[label="vuz30/Integer vuz300",fontsize=10,color="white",style="solid",shape="box"];55 -> 1110[label="",style="solid", color="burlywood", weight=9]; 1110 -> 63[label="",style="solid", color="burlywood", weight=3]; 56[label="(foldl' (*) $! (*) vuz7 vuz80)",fontsize=16,color="black",shape="box"];56 -> 64[label="",style="solid", color="black", weight=3]; 57[label="vuz7",fontsize=16,color="green",shape="box"];58[label="primMulDouble (Double vuz90 vuz91) vuz30",fontsize=16,color="burlywood",shape="box"];1111[label="vuz30/Double vuz300 vuz301",fontsize=10,color="white",style="solid",shape="box"];58 -> 1111[label="",style="solid", color="burlywood", weight=9]; 1111 -> 65[label="",style="solid", color="burlywood", weight=3]; 59[label="primMulInt (Pos vuz100) vuz30",fontsize=16,color="burlywood",shape="box"];1112[label="vuz30/Pos vuz300",fontsize=10,color="white",style="solid",shape="box"];59 -> 1112[label="",style="solid", color="burlywood", weight=9]; 1112 -> 66[label="",style="solid", color="burlywood", weight=3]; 1113[label="vuz30/Neg vuz300",fontsize=10,color="white",style="solid",shape="box"];59 -> 1113[label="",style="solid", color="burlywood", weight=9]; 1113 -> 67[label="",style="solid", color="burlywood", weight=3]; 60[label="primMulInt (Neg vuz100) vuz30",fontsize=16,color="burlywood",shape="box"];1114[label="vuz30/Pos vuz300",fontsize=10,color="white",style="solid",shape="box"];60 -> 1114[label="",style="solid", color="burlywood", weight=9]; 1114 -> 68[label="",style="solid", color="burlywood", weight=3]; 1115[label="vuz30/Neg vuz300",fontsize=10,color="white",style="solid",shape="box"];60 -> 1115[label="",style="solid", color="burlywood", weight=9]; 1115 -> 69[label="",style="solid", color="burlywood", weight=3]; 61[label="(*) (vuz110 :% vuz111) (vuz300 :% vuz301)",fontsize=16,color="black",shape="box"];61 -> 70[label="",style="solid", color="black", weight=3]; 62[label="primMulFloat (Float vuz120 vuz121) vuz30",fontsize=16,color="burlywood",shape="box"];1116[label="vuz30/Float vuz300 vuz301",fontsize=10,color="white",style="solid",shape="box"];62 -> 1116[label="",style="solid", color="burlywood", weight=9]; 1116 -> 71[label="",style="solid", color="burlywood", weight=3]; 63[label="(*) Integer vuz130 Integer vuz300",fontsize=16,color="black",shape="box"];63 -> 72[label="",style="solid", color="black", weight=3]; 64[label="((*) vuz7 vuz80 `seq` foldl' (*) ((*) vuz7 vuz80))",fontsize=16,color="black",shape="box"];64 -> 73[label="",style="solid", color="black", weight=3]; 65[label="primMulDouble (Double vuz90 vuz91) (Double vuz300 vuz301)",fontsize=16,color="black",shape="box"];65 -> 74[label="",style="solid", color="black", weight=3]; 66[label="primMulInt (Pos vuz100) (Pos vuz300)",fontsize=16,color="black",shape="box"];66 -> 75[label="",style="solid", color="black", weight=3]; 67[label="primMulInt (Pos vuz100) (Neg vuz300)",fontsize=16,color="black",shape="box"];67 -> 76[label="",style="solid", color="black", weight=3]; 68[label="primMulInt (Neg vuz100) (Pos vuz300)",fontsize=16,color="black",shape="box"];68 -> 77[label="",style="solid", color="black", weight=3]; 69[label="primMulInt (Neg vuz100) (Neg vuz300)",fontsize=16,color="black",shape="box"];69 -> 78[label="",style="solid", color="black", weight=3]; 70[label="reduce (vuz110 * vuz300) (vuz111 * vuz301)",fontsize=16,color="black",shape="box"];70 -> 79[label="",style="solid", color="black", weight=3]; 71[label="primMulFloat (Float vuz120 vuz121) (Float vuz300 vuz301)",fontsize=16,color="black",shape="box"];71 -> 80[label="",style="solid", color="black", weight=3]; 72[label="Integer (primMulInt vuz130 vuz300)",fontsize=16,color="green",shape="box"];72 -> 81[label="",style="dashed", color="green", weight=3]; 73 -> 21[label="",style="dashed", color="red", weight=0]; 73[label="enforceWHNF (WHNF ((*) vuz7 vuz80)) (foldl' (*) ((*) vuz7 vuz80)) vuz81",fontsize=16,color="magenta"];73 -> 82[label="",style="dashed", color="magenta", weight=3]; 73 -> 83[label="",style="dashed", color="magenta", weight=3]; 74[label="Double (vuz90 * vuz300) (vuz91 * vuz301)",fontsize=16,color="green",shape="box"];74 -> 84[label="",style="dashed", color="green", weight=3]; 74 -> 85[label="",style="dashed", color="green", weight=3]; 75[label="Pos (primMulNat vuz100 vuz300)",fontsize=16,color="green",shape="box"];75 -> 86[label="",style="dashed", color="green", weight=3]; 76[label="Neg (primMulNat vuz100 vuz300)",fontsize=16,color="green",shape="box"];76 -> 87[label="",style="dashed", color="green", weight=3]; 77[label="Neg (primMulNat vuz100 vuz300)",fontsize=16,color="green",shape="box"];77 -> 88[label="",style="dashed", color="green", weight=3]; 78[label="Pos (primMulNat vuz100 vuz300)",fontsize=16,color="green",shape="box"];78 -> 89[label="",style="dashed", color="green", weight=3]; 79[label="reduce2 (vuz110 * vuz300) (vuz111 * vuz301)",fontsize=16,color="black",shape="box"];79 -> 90[label="",style="solid", color="black", weight=3]; 80[label="Float (vuz120 * vuz300) (vuz121 * vuz301)",fontsize=16,color="green",shape="box"];80 -> 91[label="",style="dashed", color="green", weight=3]; 80 -> 92[label="",style="dashed", color="green", weight=3]; 81 -> 52[label="",style="dashed", color="red", weight=0]; 81[label="primMulInt vuz130 vuz300",fontsize=16,color="magenta"];81 -> 93[label="",style="dashed", color="magenta", weight=3]; 81 -> 94[label="",style="dashed", color="magenta", weight=3]; 82[label="vuz81",fontsize=16,color="green",shape="box"];83[label="(*) vuz7 vuz80",fontsize=16,color="blue",shape="box"];1117[label="* :: Double -> Double -> Double",fontsize=10,color="white",style="solid",shape="box"];83 -> 1117[label="",style="solid", color="blue", weight=9]; 1117 -> 95[label="",style="solid", color="blue", weight=3]; 1118[label="* :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];83 -> 1118[label="",style="solid", color="blue", weight=9]; 1118 -> 96[label="",style="solid", color="blue", weight=3]; 1119[label="* :: (Ratio a) -> (Ratio a) -> Ratio a",fontsize=10,color="white",style="solid",shape="box"];83 -> 1119[label="",style="solid", color="blue", weight=9]; 1119 -> 97[label="",style="solid", color="blue", weight=3]; 1120[label="* :: Float -> Float -> Float",fontsize=10,color="white",style="solid",shape="box"];83 -> 1120[label="",style="solid", color="blue", weight=9]; 1120 -> 98[label="",style="solid", color="blue", weight=3]; 1121[label="* :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];83 -> 1121[label="",style="solid", color="blue", weight=9]; 1121 -> 99[label="",style="solid", color="blue", weight=3]; 84 -> 37[label="",style="dashed", color="red", weight=0]; 84[label="vuz90 * vuz300",fontsize=16,color="magenta"];84 -> 100[label="",style="dashed", color="magenta", weight=3]; 84 -> 101[label="",style="dashed", color="magenta", weight=3]; 85 -> 37[label="",style="dashed", color="red", weight=0]; 85[label="vuz91 * vuz301",fontsize=16,color="magenta"];85 -> 102[label="",style="dashed", color="magenta", weight=3]; 85 -> 103[label="",style="dashed", color="magenta", weight=3]; 86[label="primMulNat vuz100 vuz300",fontsize=16,color="burlywood",shape="triangle"];1122[label="vuz100/Succ vuz1000",fontsize=10,color="white",style="solid",shape="box"];86 -> 1122[label="",style="solid", color="burlywood", weight=9]; 1122 -> 104[label="",style="solid", color="burlywood", weight=3]; 1123[label="vuz100/Zero",fontsize=10,color="white",style="solid",shape="box"];86 -> 1123[label="",style="solid", color="burlywood", weight=9]; 1123 -> 105[label="",style="solid", color="burlywood", weight=3]; 87 -> 86[label="",style="dashed", color="red", weight=0]; 87[label="primMulNat vuz100 vuz300",fontsize=16,color="magenta"];87 -> 106[label="",style="dashed", color="magenta", weight=3]; 88 -> 86[label="",style="dashed", color="red", weight=0]; 88[label="primMulNat vuz100 vuz300",fontsize=16,color="magenta"];88 -> 107[label="",style="dashed", color="magenta", weight=3]; 89 -> 86[label="",style="dashed", color="red", weight=0]; 89[label="primMulNat vuz100 vuz300",fontsize=16,color="magenta"];89 -> 108[label="",style="dashed", color="magenta", weight=3]; 89 -> 109[label="",style="dashed", color="magenta", weight=3]; 90 -> 110[label="",style="dashed", color="red", weight=0]; 90[label="reduce2Reduce1 (vuz110 * vuz300) (vuz111 * vuz301) (vuz110 * vuz300) (vuz111 * vuz301) (vuz111 * vuz301 == fromInt (Pos Zero))",fontsize=16,color="magenta"];90 -> 111[label="",style="dashed", color="magenta", weight=3]; 90 -> 112[label="",style="dashed", color="magenta", weight=3]; 90 -> 113[label="",style="dashed", color="magenta", weight=3]; 90 -> 114[label="",style="dashed", color="magenta", weight=3]; 90 -> 115[label="",style="dashed", color="magenta", weight=3]; 91 -> 37[label="",style="dashed", color="red", weight=0]; 91[label="vuz120 * vuz300",fontsize=16,color="magenta"];91 -> 116[label="",style="dashed", color="magenta", weight=3]; 91 -> 117[label="",style="dashed", color="magenta", weight=3]; 92 -> 37[label="",style="dashed", color="red", weight=0]; 92[label="vuz121 * vuz301",fontsize=16,color="magenta"];92 -> 118[label="",style="dashed", color="magenta", weight=3]; 92 -> 119[label="",style="dashed", color="magenta", weight=3]; 93[label="vuz130",fontsize=16,color="green",shape="box"];94[label="vuz300",fontsize=16,color="green",shape="box"];95 -> 35[label="",style="dashed", color="red", weight=0]; 95[label="(*) vuz7 vuz80",fontsize=16,color="magenta"];95 -> 120[label="",style="dashed", color="magenta", weight=3]; 95 -> 121[label="",style="dashed", color="magenta", weight=3]; 96 -> 37[label="",style="dashed", color="red", weight=0]; 96[label="(*) vuz7 vuz80",fontsize=16,color="magenta"];96 -> 122[label="",style="dashed", color="magenta", weight=3]; 96 -> 123[label="",style="dashed", color="magenta", weight=3]; 97 -> 39[label="",style="dashed", color="red", weight=0]; 97[label="(*) vuz7 vuz80",fontsize=16,color="magenta"];97 -> 124[label="",style="dashed", color="magenta", weight=3]; 97 -> 125[label="",style="dashed", color="magenta", weight=3]; 98 -> 41[label="",style="dashed", color="red", weight=0]; 98[label="(*) vuz7 vuz80",fontsize=16,color="magenta"];98 -> 126[label="",style="dashed", color="magenta", weight=3]; 98 -> 127[label="",style="dashed", color="magenta", weight=3]; 99 -> 43[label="",style="dashed", color="red", weight=0]; 99[label="(*) vuz7 vuz80",fontsize=16,color="magenta"];99 -> 128[label="",style="dashed", color="magenta", weight=3]; 99 -> 129[label="",style="dashed", color="magenta", weight=3]; 100[label="vuz90",fontsize=16,color="green",shape="box"];101[label="vuz300",fontsize=16,color="green",shape="box"];102[label="vuz91",fontsize=16,color="green",shape="box"];103[label="vuz301",fontsize=16,color="green",shape="box"];104[label="primMulNat (Succ vuz1000) vuz300",fontsize=16,color="burlywood",shape="box"];1124[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];104 -> 1124[label="",style="solid", color="burlywood", weight=9]; 1124 -> 130[label="",style="solid", color="burlywood", weight=3]; 1125[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];104 -> 1125[label="",style="solid", color="burlywood", weight=9]; 1125 -> 131[label="",style="solid", color="burlywood", weight=3]; 105[label="primMulNat Zero vuz300",fontsize=16,color="burlywood",shape="box"];1126[label="vuz300/Succ vuz3000",fontsize=10,color="white",style="solid",shape="box"];105 -> 1126[label="",style="solid", color="burlywood", weight=9]; 1126 -> 132[label="",style="solid", color="burlywood", weight=3]; 1127[label="vuz300/Zero",fontsize=10,color="white",style="solid",shape="box"];105 -> 1127[label="",style="solid", color="burlywood", weight=9]; 1127 -> 133[label="",style="solid", color="burlywood", weight=3]; 106[label="vuz300",fontsize=16,color="green",shape="box"];107[label="vuz100",fontsize=16,color="green",shape="box"];108[label="vuz100",fontsize=16,color="green",shape="box"];109[label="vuz300",fontsize=16,color="green",shape="box"];111[label="vuz110",fontsize=16,color="green",shape="box"];112[label="vuz111",fontsize=16,color="green",shape="box"];113[label="vuz300",fontsize=16,color="green",shape="box"];114[label="vuz301",fontsize=16,color="green",shape="box"];115[label="vuz111 * vuz301 == fromInt (Pos Zero)",fontsize=16,color="blue",shape="box"];1128[label="== :: Int -> Int -> Bool",fontsize=10,color="white",style="solid",shape="box"];115 -> 1128[label="",style="solid", color="blue", weight=9]; 1128 -> 134[label="",style="solid", color="blue", weight=3]; 1129[label="== :: Integer -> Integer -> Bool",fontsize=10,color="white",style="solid",shape="box"];115 -> 1129[label="",style="solid", color="blue", weight=9]; 1129 -> 135[label="",style="solid", color="blue", weight=3]; 110[label="reduce2Reduce1 (vuz20 * vuz21) (vuz22 * vuz23) (vuz20 * vuz21) (vuz22 * vuz23) vuz24",fontsize=16,color="burlywood",shape="triangle"];1130[label="vuz24/False",fontsize=10,color="white",style="solid",shape="box"];110 -> 1130[label="",style="solid", color="burlywood", weight=9]; 1130 -> 136[label="",style="solid", color="burlywood", weight=3]; 1131[label="vuz24/True",fontsize=10,color="white",style="solid",shape="box"];110 -> 1131[label="",style="solid", color="burlywood", weight=9]; 1131 -> 137[label="",style="solid", color="burlywood", weight=3]; 116[label="vuz120",fontsize=16,color="green",shape="box"];117[label="vuz300",fontsize=16,color="green",shape="box"];118[label="vuz121",fontsize=16,color="green",shape="box"];119[label="vuz301",fontsize=16,color="green",shape="box"];120[label="vuz7",fontsize=16,color="green",shape="box"];121[label="vuz80",fontsize=16,color="green",shape="box"];122[label="vuz7",fontsize=16,color="green",shape="box"];123[label="vuz80",fontsize=16,color="green",shape="box"];124[label="vuz7",fontsize=16,color="green",shape="box"];125[label="vuz80",fontsize=16,color="green",shape="box"];126[label="vuz80",fontsize=16,color="green",shape="box"];127[label="vuz7",fontsize=16,color="green",shape="box"];128[label="vuz80",fontsize=16,color="green",shape="box"];129[label="vuz7",fontsize=16,color="green",shape="box"];130[label="primMulNat (Succ vuz1000) (Succ vuz3000)",fontsize=16,color="black",shape="box"];130 -> 138[label="",style="solid", color="black", weight=3]; 131[label="primMulNat (Succ vuz1000) Zero",fontsize=16,color="black",shape="box"];131 -> 139[label="",style="solid", color="black", weight=3]; 132[label="primMulNat Zero (Succ vuz3000)",fontsize=16,color="black",shape="box"];132 -> 140[label="",style="solid", color="black", weight=3]; 133[label="primMulNat Zero Zero",fontsize=16,color="black",shape="box"];133 -> 141[label="",style="solid", color="black", weight=3]; 134 -> 142[label="",style="dashed", color="red", weight=0]; 134[label="vuz111 * vuz301 == fromInt (Pos Zero)",fontsize=16,color="magenta"];134 -> 143[label="",style="dashed", color="magenta", weight=3]; 135 -> 144[label="",style="dashed", color="red", weight=0]; 135[label="vuz111 * vuz301 == fromInt (Pos Zero)",fontsize=16,color="magenta"];135 -> 145[label="",style="dashed", color="magenta", weight=3]; 136[label="reduce2Reduce1 (vuz20 * vuz21) (vuz22 * vuz23) (vuz20 * vuz21) (vuz22 * vuz23) False",fontsize=16,color="black",shape="box"];136 -> 146[label="",style="solid", color="black", weight=3]; 137[label="reduce2Reduce1 (vuz20 * vuz21) (vuz22 * vuz23) (vuz20 * vuz21) (vuz22 * vuz23) True",fontsize=16,color="black",shape="box"];137 -> 147[label="",style="solid", color="black", weight=3]; 138 -> 148[label="",style="dashed", color="red", weight=0]; 138[label="primPlusNat (primMulNat vuz1000 (Succ vuz3000)) (Succ vuz3000)",fontsize=16,color="magenta"];138 -> 149[label="",style="dashed", color="magenta", weight=3]; 139[label="Zero",fontsize=16,color="green",shape="box"];140[label="Zero",fontsize=16,color="green",shape="box"];141[label="Zero",fontsize=16,color="green",shape="box"];143 -> 37[label="",style="dashed", color="red", weight=0]; 143[label="vuz111 * vuz301",fontsize=16,color="magenta"];143 -> 150[label="",style="dashed", color="magenta", weight=3]; 143 -> 151[label="",style="dashed", color="magenta", weight=3]; 142[label="vuz25 == fromInt (Pos Zero)",fontsize=16,color="black",shape="triangle"];142 -> 152[label="",style="solid", color="black", weight=3]; 145 -> 43[label="",style="dashed", color="red", weight=0]; 145[label="vuz111 * vuz301",fontsize=16,color="magenta"];145 -> 153[label="",style="dashed", color="magenta", weight=3]; 145 -> 154[label="",style="dashed", color="magenta", weight=3]; 144[label="vuz26 == fromInt (Pos Zero)",fontsize=16,color="burlywood",shape="triangle"];1132[label="vuz26/Integer vuz260",fontsize=10,color="white",style="solid",shape="box"];144 -> 1132[label="",style="solid", color="burlywood", weight=9]; 1132 -> 155[label="",style="solid", color="burlywood", weight=3]; 146[label="reduce2Reduce0 (vuz20 * vuz21) (vuz22 * vuz23) (vuz20 * vuz21) (vuz22 * vuz23) otherwise",fontsize=16,color="black",shape="box"];146 -> 156[label="",style="solid", color="black", weight=3]; 147[label="error []",fontsize=16,color="black",shape="box"];147 -> 157[label="",style="solid", color="black", weight=3]; 149 -> 86[label="",style="dashed", color="red", weight=0]; 149[label="primMulNat vuz1000 (Succ vuz3000)",fontsize=16,color="magenta"];149 -> 158[label="",style="dashed", color="magenta", weight=3]; 149 -> 159[label="",style="dashed", color="magenta", weight=3]; 148[label="primPlusNat vuz27 (Succ vuz3000)",fontsize=16,color="burlywood",shape="triangle"];1133[label="vuz27/Succ vuz270",fontsize=10,color="white",style="solid",shape="box"];148 -> 1133[label="",style="solid", color="burlywood", weight=9]; 1133 -> 160[label="",style="solid", color="burlywood", weight=3]; 1134[label="vuz27/Zero",fontsize=10,color="white",style="solid",shape="box"];148 -> 1134[label="",style="solid", color="burlywood", weight=9]; 1134 -> 161[label="",style="solid", color="burlywood", weight=3]; 150[label="vuz111",fontsize=16,color="green",shape="box"];151[label="vuz301",fontsize=16,color="green",shape="box"];152[label="primEqInt vuz25 (fromInt (Pos Zero))",fontsize=16,color="burlywood",shape="box"];1135[label="vuz25/Pos vuz250",fontsize=10,color="white",style="solid",shape="box"];152 -> 1135[label="",style="solid", color="burlywood", weight=9]; 1135 -> 162[label="",style="solid", color="burlywood", weight=3]; 1136[label="vuz25/Neg vuz250",fontsize=10,color="white",style="solid",shape="box"];152 -> 1136[label="",style="solid", color="burlywood", weight=9]; 1136 -> 163[label="",style="solid", color="burlywood", weight=3]; 153[label="vuz301",fontsize=16,color="green",shape="box"];154[label="vuz111",fontsize=16,color="green",shape="box"];155[label="Integer vuz260 == fromInt (Pos Zero)",fontsize=16,color="black",shape="box"];155 -> 164[label="",style="solid", color="black", weight=3]; 156[label="reduce2Reduce0 (vuz20 * vuz21) (vuz22 * vuz23) (vuz20 * vuz21) (vuz22 * vuz23) True",fontsize=16,color="black",shape="box"];156 -> 165[label="",style="solid", color="black", weight=3]; 157[label="error []",fontsize=16,color="red",shape="box"];158[label="vuz1000",fontsize=16,color="green",shape="box"];159[label="Succ vuz3000",fontsize=16,color="green",shape="box"];160[label="primPlusNat (Succ vuz270) (Succ vuz3000)",fontsize=16,color="black",shape="box"];160 -> 166[label="",style="solid", color="black", weight=3]; 161[label="primPlusNat Zero (Succ vuz3000)",fontsize=16,color="black",shape="box"];161 -> 167[label="",style="solid", color="black", weight=3]; 162[label="primEqInt (Pos vuz250) (fromInt (Pos Zero))",fontsize=16,color="burlywood",shape="box"];1137[label="vuz250/Succ vuz2500",fontsize=10,color="white",style="solid",shape="box"];162 -> 1137[label="",style="solid", color="burlywood", weight=9]; 1137 -> 168[label="",style="solid", color="burlywood", weight=3]; 1138[label="vuz250/Zero",fontsize=10,color="white",style="solid",shape="box"];162 -> 1138[label="",style="solid", color="burlywood", weight=9]; 1138 -> 169[label="",style="solid", color="burlywood", weight=3]; 163[label="primEqInt (Neg vuz250) (fromInt (Pos Zero))",fontsize=16,color="burlywood",shape="box"];1139[label="vuz250/Succ vuz2500",fontsize=10,color="white",style="solid",shape="box"];163 -> 1139[label="",style="solid", color="burlywood", weight=9]; 1139 -> 170[label="",style="solid", color="burlywood", weight=3]; 1140[label="vuz250/Zero",fontsize=10,color="white",style="solid",shape="box"];163 -> 1140[label="",style="solid", color="burlywood", weight=9]; 1140 -> 171[label="",style="solid", color="burlywood", weight=3]; 164[label="Integer vuz260 == Integer (Pos Zero)",fontsize=16,color="black",shape="box"];164 -> 172[label="",style="solid", color="black", weight=3]; 165[label="vuz20 * vuz21 `quot` reduce2D (vuz20 * vuz21) (vuz22 * vuz23) :% (vuz22 * vuz23 `quot` reduce2D (vuz20 * vuz21) (vuz22 * vuz23))",fontsize=16,color="green",shape="box"];165 -> 173[label="",style="dashed", color="green", weight=3]; 165 -> 174[label="",style="dashed", color="green", weight=3]; 166[label="Succ (Succ (primPlusNat vuz270 vuz3000))",fontsize=16,color="green",shape="box"];166 -> 175[label="",style="dashed", color="green", weight=3]; 167[label="Succ vuz3000",fontsize=16,color="green",shape="box"];168[label="primEqInt (Pos (Succ vuz2500)) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];168 -> 176[label="",style="solid", color="black", weight=3]; 169[label="primEqInt (Pos Zero) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];169 -> 177[label="",style="solid", color="black", weight=3]; 170[label="primEqInt (Neg (Succ vuz2500)) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];170 -> 178[label="",style="solid", color="black", weight=3]; 171[label="primEqInt (Neg Zero) (fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];171 -> 179[label="",style="solid", color="black", weight=3]; 172[label="primEqInt vuz260 (Pos Zero)",fontsize=16,color="burlywood",shape="triangle"];1141[label="vuz260/Pos vuz2600",fontsize=10,color="white",style="solid",shape="box"];172 -> 1141[label="",style="solid", color="burlywood", weight=9]; 1141 -> 180[label="",style="solid", color="burlywood", weight=3]; 1142[label="vuz260/Neg vuz2600",fontsize=10,color="white",style="solid",shape="box"];172 -> 1142[label="",style="solid", color="burlywood", weight=9]; 1142 -> 181[label="",style="solid", color="burlywood", weight=3]; 173[label="vuz20 * vuz21 `quot` reduce2D (vuz20 * vuz21) (vuz22 * vuz23)",fontsize=16,color="blue",shape="box"];1143[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];173 -> 1143[label="",style="solid", color="blue", weight=9]; 1143 -> 182[label="",style="solid", color="blue", weight=3]; 1144[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];173 -> 1144[label="",style="solid", color="blue", weight=9]; 1144 -> 183[label="",style="solid", color="blue", weight=3]; 174[label="vuz22 * vuz23 `quot` reduce2D (vuz20 * vuz21) (vuz22 * vuz23)",fontsize=16,color="blue",shape="box"];1145[label="`quot` :: Integer -> Integer -> Integer",fontsize=10,color="white",style="solid",shape="box"];174 -> 1145[label="",style="solid", color="blue", weight=9]; 1145 -> 184[label="",style="solid", color="blue", weight=3]; 1146[label="`quot` :: Int -> Int -> Int",fontsize=10,color="white",style="solid",shape="box"];174 -> 1146[label="",style="solid", color="blue", weight=9]; 1146 -> 185[label="",style="solid", color="blue", weight=3]; 175[label="primPlusNat vuz270 vuz3000",fontsize=16,color="burlywood",shape="triangle"];1147[label="vuz270/Succ vuz2700",fontsize=10,color="white",style="solid",shape="box"];175 -> 1147[label="",style="solid", color="burlywood", weight=9]; 1147 -> 186[label="",style="solid", color="burlywood", weight=3]; 1148[label="vuz270/Zero",fontsize=10,color="white",style="solid",shape="box"];175 -> 1148[label="",style="solid", color="burlywood", weight=9]; 1148 -> 187[label="",style="solid", color="burlywood", weight=3]; 176 -> 172[label="",style="dashed", color="red", weight=0]; 176[label="primEqInt (Pos (Succ vuz2500)) (Pos Zero)",fontsize=16,color="magenta"];176 -> 188[label="",style="dashed", color="magenta", weight=3]; 177 -> 172[label="",style="dashed", color="red", weight=0]; 177[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="magenta"];177 -> 189[label="",style="dashed", color="magenta", weight=3]; 178 -> 172[label="",style="dashed", color="red", weight=0]; 178[label="primEqInt (Neg (Succ vuz2500)) (Pos Zero)",fontsize=16,color="magenta"];178 -> 190[label="",style="dashed", color="magenta", weight=3]; 179 -> 172[label="",style="dashed", color="red", weight=0]; 179[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="magenta"];179 -> 191[label="",style="dashed", color="magenta", weight=3]; 180[label="primEqInt (Pos vuz2600) (Pos Zero)",fontsize=16,color="burlywood",shape="box"];1149[label="vuz2600/Succ vuz26000",fontsize=10,color="white",style="solid",shape="box"];180 -> 1149[label="",style="solid", color="burlywood", weight=9]; 1149 -> 192[label="",style="solid", color="burlywood", weight=3]; 1150[label="vuz2600/Zero",fontsize=10,color="white",style="solid",shape="box"];180 -> 1150[label="",style="solid", color="burlywood", weight=9]; 1150 -> 193[label="",style="solid", color="burlywood", weight=3]; 181[label="primEqInt (Neg vuz2600) (Pos Zero)",fontsize=16,color="burlywood",shape="box"];1151[label="vuz2600/Succ vuz26000",fontsize=10,color="white",style="solid",shape="box"];181 -> 1151[label="",style="solid", color="burlywood", weight=9]; 1151 -> 194[label="",style="solid", color="burlywood", weight=3]; 1152[label="vuz2600/Zero",fontsize=10,color="white",style="solid",shape="box"];181 -> 1152[label="",style="solid", color="burlywood", weight=9]; 1152 -> 195[label="",style="solid", color="burlywood", weight=3]; 182 -> 196[label="",style="dashed", color="red", weight=0]; 182[label="vuz20 * vuz21 `quot` reduce2D (vuz20 * vuz21) (vuz22 * vuz23)",fontsize=16,color="magenta"];182 -> 197[label="",style="dashed", color="magenta", weight=3]; 182 -> 198[label="",style="dashed", color="magenta", weight=3]; 182 -> 199[label="",style="dashed", color="magenta", weight=3]; 183 -> 203[label="",style="dashed", color="red", weight=0]; 183[label="vuz20 * vuz21 `quot` reduce2D (vuz20 * vuz21) (vuz22 * vuz23)",fontsize=16,color="magenta"];183 -> 204[label="",style="dashed", color="magenta", weight=3]; 183 -> 205[label="",style="dashed", color="magenta", weight=3]; 183 -> 206[label="",style="dashed", color="magenta", weight=3]; 184 -> 196[label="",style="dashed", color="red", weight=0]; 184[label="vuz22 * vuz23 `quot` reduce2D (vuz20 * vuz21) (vuz22 * vuz23)",fontsize=16,color="magenta"];184 -> 200[label="",style="dashed", color="magenta", weight=3]; 184 -> 201[label="",style="dashed", color="magenta", weight=3]; 184 -> 202[label="",style="dashed", color="magenta", weight=3]; 185 -> 203[label="",style="dashed", color="red", weight=0]; 185[label="vuz22 * vuz23 `quot` reduce2D (vuz20 * vuz21) (vuz22 * vuz23)",fontsize=16,color="magenta"];185 -> 207[label="",style="dashed", color="magenta", weight=3]; 185 -> 208[label="",style="dashed", color="magenta", weight=3]; 185 -> 209[label="",style="dashed", color="magenta", weight=3]; 186[label="primPlusNat (Succ vuz2700) vuz3000",fontsize=16,color="burlywood",shape="box"];1153[label="vuz3000/Succ vuz30000",fontsize=10,color="white",style="solid",shape="box"];186 -> 1153[label="",style="solid", color="burlywood", weight=9]; 1153 -> 210[label="",style="solid", color="burlywood", weight=3]; 1154[label="vuz3000/Zero",fontsize=10,color="white",style="solid",shape="box"];186 -> 1154[label="",style="solid", color="burlywood", weight=9]; 1154 -> 211[label="",style="solid", color="burlywood", weight=3]; 187[label="primPlusNat Zero vuz3000",fontsize=16,color="burlywood",shape="box"];1155[label="vuz3000/Succ vuz30000",fontsize=10,color="white",style="solid",shape="box"];187 -> 1155[label="",style="solid", color="burlywood", weight=9]; 1155 -> 212[label="",style="solid", color="burlywood", weight=3]; 1156[label="vuz3000/Zero",fontsize=10,color="white",style="solid",shape="box"];187 -> 1156[label="",style="solid", color="burlywood", weight=9]; 1156 -> 213[label="",style="solid", color="burlywood", weight=3]; 188[label="Pos (Succ vuz2500)",fontsize=16,color="green",shape="box"];189[label="Pos Zero",fontsize=16,color="green",shape="box"];190[label="Neg (Succ vuz2500)",fontsize=16,color="green",shape="box"];191[label="Neg Zero",fontsize=16,color="green",shape="box"];192[label="primEqInt (Pos (Succ vuz26000)) (Pos Zero)",fontsize=16,color="black",shape="box"];192 -> 214[label="",style="solid", color="black", weight=3]; 193[label="primEqInt (Pos Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];193 -> 215[label="",style="solid", color="black", weight=3]; 194[label="primEqInt (Neg (Succ vuz26000)) (Pos Zero)",fontsize=16,color="black",shape="box"];194 -> 216[label="",style="solid", color="black", weight=3]; 195[label="primEqInt (Neg Zero) (Pos Zero)",fontsize=16,color="black",shape="box"];195 -> 217[label="",style="solid", color="black", weight=3]; 197 -> 43[label="",style="dashed", color="red", weight=0]; 197[label="vuz20 * vuz21",fontsize=16,color="magenta"];197 -> 218[label="",style="dashed", color="magenta", weight=3]; 197 -> 219[label="",style="dashed", color="magenta", weight=3]; 198 -> 43[label="",style="dashed", color="red", weight=0]; 198[label="vuz20 * vuz21",fontsize=16,color="magenta"];198 -> 220[label="",style="dashed", color="magenta", weight=3]; 198 -> 221[label="",style="dashed", color="magenta", weight=3]; 199 -> 43[label="",style="dashed", color="red", weight=0]; 199[label="vuz22 * vuz23",fontsize=16,color="magenta"];199 -> 222[label="",style="dashed", color="magenta", weight=3]; 199 -> 223[label="",style="dashed", color="magenta", weight=3]; 196[label="vuz28 `quot` reduce2D vuz30 vuz29",fontsize=16,color="burlywood",shape="triangle"];1157[label="vuz28/Integer vuz280",fontsize=10,color="white",style="solid",shape="box"];196 -> 1157[label="",style="solid", color="burlywood", weight=9]; 1157 -> 224[label="",style="solid", color="burlywood", weight=3]; 204 -> 37[label="",style="dashed", color="red", weight=0]; 204[label="vuz20 * vuz21",fontsize=16,color="magenta"];204 -> 225[label="",style="dashed", color="magenta", weight=3]; 204 -> 226[label="",style="dashed", color="magenta", weight=3]; 205 -> 37[label="",style="dashed", color="red", weight=0]; 205[label="vuz20 * vuz21",fontsize=16,color="magenta"];205 -> 227[label="",style="dashed", color="magenta", weight=3]; 205 -> 228[label="",style="dashed", color="magenta", weight=3]; 206 -> 37[label="",style="dashed", color="red", weight=0]; 206[label="vuz22 * vuz23",fontsize=16,color="magenta"];206 -> 229[label="",style="dashed", color="magenta", weight=3]; 206 -> 230[label="",style="dashed", color="magenta", weight=3]; 203[label="vuz31 `quot` reduce2D vuz33 vuz32",fontsize=16,color="black",shape="triangle"];203 -> 231[label="",style="solid", color="black", weight=3]; 200 -> 43[label="",style="dashed", color="red", weight=0]; 200[label="vuz20 * vuz21",fontsize=16,color="magenta"];200 -> 232[label="",style="dashed", color="magenta", weight=3]; 200 -> 233[label="",style="dashed", color="magenta", weight=3]; 201 -> 43[label="",style="dashed", color="red", weight=0]; 201[label="vuz22 * vuz23",fontsize=16,color="magenta"];201 -> 234[label="",style="dashed", color="magenta", weight=3]; 201 -> 235[label="",style="dashed", color="magenta", weight=3]; 202 -> 43[label="",style="dashed", color="red", weight=0]; 202[label="vuz22 * vuz23",fontsize=16,color="magenta"];202 -> 236[label="",style="dashed", color="magenta", weight=3]; 202 -> 237[label="",style="dashed", color="magenta", weight=3]; 207 -> 37[label="",style="dashed", color="red", weight=0]; 207[label="vuz20 * vuz21",fontsize=16,color="magenta"];207 -> 238[label="",style="dashed", color="magenta", weight=3]; 207 -> 239[label="",style="dashed", color="magenta", weight=3]; 208 -> 37[label="",style="dashed", color="red", weight=0]; 208[label="vuz22 * vuz23",fontsize=16,color="magenta"];208 -> 240[label="",style="dashed", color="magenta", weight=3]; 208 -> 241[label="",style="dashed", color="magenta", weight=3]; 209 -> 37[label="",style="dashed", color="red", weight=0]; 209[label="vuz22 * vuz23",fontsize=16,color="magenta"];209 -> 242[label="",style="dashed", color="magenta", weight=3]; 209 -> 243[label="",style="dashed", color="magenta", weight=3]; 210[label="primPlusNat (Succ vuz2700) (Succ vuz30000)",fontsize=16,color="black",shape="box"];210 -> 244[label="",style="solid", color="black", weight=3]; 211[label="primPlusNat (Succ vuz2700) Zero",fontsize=16,color="black",shape="box"];211 -> 245[label="",style="solid", color="black", weight=3]; 212[label="primPlusNat Zero (Succ vuz30000)",fontsize=16,color="black",shape="box"];212 -> 246[label="",style="solid", color="black", weight=3]; 213[label="primPlusNat Zero Zero",fontsize=16,color="black",shape="box"];213 -> 247[label="",style="solid", color="black", weight=3]; 214[label="False",fontsize=16,color="green",shape="box"];215[label="True",fontsize=16,color="green",shape="box"];216[label="False",fontsize=16,color="green",shape="box"];217[label="True",fontsize=16,color="green",shape="box"];218[label="vuz21",fontsize=16,color="green",shape="box"];219[label="vuz20",fontsize=16,color="green",shape="box"];220[label="vuz21",fontsize=16,color="green",shape="box"];221[label="vuz20",fontsize=16,color="green",shape="box"];222[label="vuz23",fontsize=16,color="green",shape="box"];223[label="vuz22",fontsize=16,color="green",shape="box"];224[label="Integer vuz280 `quot` reduce2D vuz30 vuz29",fontsize=16,color="black",shape="box"];224 -> 248[label="",style="solid", color="black", weight=3]; 225[label="vuz20",fontsize=16,color="green",shape="box"];226[label="vuz21",fontsize=16,color="green",shape="box"];227[label="vuz20",fontsize=16,color="green",shape="box"];228[label="vuz21",fontsize=16,color="green",shape="box"];229[label="vuz22",fontsize=16,color="green",shape="box"];230[label="vuz23",fontsize=16,color="green",shape="box"];231[label="primQuotInt vuz31 (reduce2D vuz33 vuz32)",fontsize=16,color="burlywood",shape="box"];1158[label="vuz31/Pos vuz310",fontsize=10,color="white",style="solid",shape="box"];231 -> 1158[label="",style="solid", color="burlywood", weight=9]; 1158 -> 249[label="",style="solid", color="burlywood", weight=3]; 1159[label="vuz31/Neg vuz310",fontsize=10,color="white",style="solid",shape="box"];231 -> 1159[label="",style="solid", color="burlywood", weight=9]; 1159 -> 250[label="",style="solid", color="burlywood", weight=3]; 232[label="vuz21",fontsize=16,color="green",shape="box"];233[label="vuz20",fontsize=16,color="green",shape="box"];234[label="vuz23",fontsize=16,color="green",shape="box"];235[label="vuz22",fontsize=16,color="green",shape="box"];236[label="vuz23",fontsize=16,color="green",shape="box"];237[label="vuz22",fontsize=16,color="green",shape="box"];238[label="vuz20",fontsize=16,color="green",shape="box"];239[label="vuz21",fontsize=16,color="green",shape="box"];240[label="vuz22",fontsize=16,color="green",shape="box"];241[label="vuz23",fontsize=16,color="green",shape="box"];242[label="vuz22",fontsize=16,color="green",shape="box"];243[label="vuz23",fontsize=16,color="green",shape="box"];244[label="Succ (Succ (primPlusNat vuz2700 vuz30000))",fontsize=16,color="green",shape="box"];244 -> 251[label="",style="dashed", color="green", weight=3]; 245[label="Succ vuz2700",fontsize=16,color="green",shape="box"];246[label="Succ vuz30000",fontsize=16,color="green",shape="box"];247[label="Zero",fontsize=16,color="green",shape="box"];248 -> 338[label="",style="dashed", color="red", weight=0]; 248[label="Integer vuz280 `quot` gcd vuz30 vuz29",fontsize=16,color="magenta"];248 -> 339[label="",style="dashed", color="magenta", weight=3]; 249[label="primQuotInt (Pos vuz310) (reduce2D vuz33 vuz32)",fontsize=16,color="black",shape="box"];249 -> 253[label="",style="solid", color="black", weight=3]; 250[label="primQuotInt (Neg vuz310) (reduce2D vuz33 vuz32)",fontsize=16,color="black",shape="box"];250 -> 254[label="",style="solid", color="black", weight=3]; 251 -> 175[label="",style="dashed", color="red", weight=0]; 251[label="primPlusNat vuz2700 vuz30000",fontsize=16,color="magenta"];251 -> 255[label="",style="dashed", color="magenta", weight=3]; 251 -> 256[label="",style="dashed", color="magenta", weight=3]; 339[label="gcd vuz30 vuz29",fontsize=16,color="black",shape="box"];339 -> 355[label="",style="solid", color="black", weight=3]; 338[label="Integer vuz280 `quot` vuz45",fontsize=16,color="burlywood",shape="triangle"];1160[label="vuz45/Integer vuz450",fontsize=10,color="white",style="solid",shape="box"];338 -> 1160[label="",style="solid", color="burlywood", weight=9]; 1160 -> 356[label="",style="solid", color="burlywood", weight=3]; 253 -> 374[label="",style="dashed", color="red", weight=0]; 253[label="primQuotInt (Pos vuz310) (gcd vuz33 vuz32)",fontsize=16,color="magenta"];253 -> 375[label="",style="dashed", color="magenta", weight=3]; 254[label="primQuotInt (Neg vuz310) (gcd vuz33 vuz32)",fontsize=16,color="black",shape="box"];254 -> 259[label="",style="solid", color="black", weight=3]; 255[label="vuz2700",fontsize=16,color="green",shape="box"];256[label="vuz30000",fontsize=16,color="green",shape="box"];355[label="gcd3 vuz30 vuz29",fontsize=16,color="black",shape="box"];355 -> 362[label="",style="solid", color="black", weight=3]; 356[label="Integer vuz280 `quot` Integer vuz450",fontsize=16,color="black",shape="box"];356 -> 363[label="",style="solid", color="black", weight=3]; 375[label="gcd vuz33 vuz32",fontsize=16,color="black",shape="box"];375 -> 391[label="",style="solid", color="black", weight=3]; 374[label="primQuotInt (Pos vuz310) vuz49",fontsize=16,color="burlywood",shape="triangle"];1161[label="vuz49/Pos vuz490",fontsize=10,color="white",style="solid",shape="box"];374 -> 1161[label="",style="solid", color="burlywood", weight=9]; 1161 -> 392[label="",style="solid", color="burlywood", weight=3]; 1162[label="vuz49/Neg vuz490",fontsize=10,color="white",style="solid",shape="box"];374 -> 1162[label="",style="solid", color="burlywood", weight=9]; 1162 -> 393[label="",style="solid", color="burlywood", weight=3]; 259[label="primQuotInt (Neg vuz310) (gcd3 vuz33 vuz32)",fontsize=16,color="black",shape="box"];259 -> 263[label="",style="solid", color="black", weight=3]; 362 -> 368[label="",style="dashed", color="red", weight=0]; 362[label="gcd2 (vuz30 == fromInt (Pos Zero)) vuz30 vuz29",fontsize=16,color="magenta"];362 -> 369[label="",style="dashed", color="magenta", weight=3]; 363[label="Integer (primQuotInt vuz280 vuz450)",fontsize=16,color="green",shape="box"];363 -> 370[label="",style="dashed", color="green", weight=3]; 391[label="gcd3 vuz33 vuz32",fontsize=16,color="black",shape="box"];391 -> 403[label="",style="solid", color="black", weight=3]; 392[label="primQuotInt (Pos vuz310) (Pos vuz490)",fontsize=16,color="burlywood",shape="box"];1163[label="vuz490/Succ vuz4900",fontsize=10,color="white",style="solid",shape="box"];392 -> 1163[label="",style="solid", color="burlywood", weight=9]; 1163 -> 404[label="",style="solid", color="burlywood", weight=3]; 1164[label="vuz490/Zero",fontsize=10,color="white",style="solid",shape="box"];392 -> 1164[label="",style="solid", color="burlywood", weight=9]; 1164 -> 405[label="",style="solid", color="burlywood", weight=3]; 393[label="primQuotInt (Pos vuz310) (Neg vuz490)",fontsize=16,color="burlywood",shape="box"];1165[label="vuz490/Succ vuz4900",fontsize=10,color="white",style="solid",shape="box"];393 -> 1165[label="",style="solid", color="burlywood", weight=9]; 1165 -> 406[label="",style="solid", color="burlywood", weight=3]; 1166[label="vuz490/Zero",fontsize=10,color="white",style="solid",shape="box"];393 -> 1166[label="",style="solid", color="burlywood", weight=9]; 1166 -> 407[label="",style="solid", color="burlywood", weight=3]; 263 -> 269[label="",style="dashed", color="red", weight=0]; 263[label="primQuotInt (Neg vuz310) (gcd2 (vuz33 == fromInt (Pos Zero)) vuz33 vuz32)",fontsize=16,color="magenta"];263 -> 270[label="",style="dashed", color="magenta", weight=3]; 369 -> 144[label="",style="dashed", color="red", weight=0]; 369[label="vuz30 == fromInt (Pos Zero)",fontsize=16,color="magenta"];369 -> 371[label="",style="dashed", color="magenta", weight=3]; 368[label="gcd2 vuz48 vuz30 vuz29",fontsize=16,color="burlywood",shape="triangle"];1167[label="vuz48/False",fontsize=10,color="white",style="solid",shape="box"];368 -> 1167[label="",style="solid", color="burlywood", weight=9]; 1167 -> 372[label="",style="solid", color="burlywood", weight=3]; 1168[label="vuz48/True",fontsize=10,color="white",style="solid",shape="box"];368 -> 1168[label="",style="solid", color="burlywood", weight=9]; 1168 -> 373[label="",style="solid", color="burlywood", weight=3]; 370[label="primQuotInt vuz280 vuz450",fontsize=16,color="burlywood",shape="triangle"];1169[label="vuz280/Pos vuz2800",fontsize=10,color="white",style="solid",shape="box"];370 -> 1169[label="",style="solid", color="burlywood", weight=9]; 1169 -> 394[label="",style="solid", color="burlywood", weight=3]; 1170[label="vuz280/Neg vuz2800",fontsize=10,color="white",style="solid",shape="box"];370 -> 1170[label="",style="solid", color="burlywood", weight=9]; 1170 -> 395[label="",style="solid", color="burlywood", weight=3]; 403 -> 415[label="",style="dashed", color="red", weight=0]; 403[label="gcd2 (vuz33 == fromInt (Pos Zero)) vuz33 vuz32",fontsize=16,color="magenta"];403 -> 416[label="",style="dashed", color="magenta", weight=3]; 404[label="primQuotInt (Pos vuz310) (Pos (Succ vuz4900))",fontsize=16,color="black",shape="box"];404 -> 417[label="",style="solid", color="black", weight=3]; 405[label="primQuotInt (Pos vuz310) (Pos Zero)",fontsize=16,color="black",shape="box"];405 -> 418[label="",style="solid", color="black", weight=3]; 406[label="primQuotInt (Pos vuz310) (Neg (Succ vuz4900))",fontsize=16,color="black",shape="box"];406 -> 419[label="",style="solid", color="black", weight=3]; 407[label="primQuotInt (Pos vuz310) (Neg Zero)",fontsize=16,color="black",shape="box"];407 -> 420[label="",style="solid", color="black", weight=3]; 270 -> 142[label="",style="dashed", color="red", weight=0]; 270[label="vuz33 == fromInt (Pos Zero)",fontsize=16,color="magenta"];270 -> 276[label="",style="dashed", color="magenta", weight=3]; 269[label="primQuotInt (Neg vuz310) (gcd2 vuz36 vuz33 vuz32)",fontsize=16,color="burlywood",shape="triangle"];1171[label="vuz36/False",fontsize=10,color="white",style="solid",shape="box"];269 -> 1171[label="",style="solid", color="burlywood", weight=9]; 1171 -> 277[label="",style="solid", color="burlywood", weight=3]; 1172[label="vuz36/True",fontsize=10,color="white",style="solid",shape="box"];269 -> 1172[label="",style="solid", color="burlywood", weight=9]; 1172 -> 278[label="",style="solid", color="burlywood", weight=3]; 371[label="vuz30",fontsize=16,color="green",shape="box"];372[label="gcd2 False vuz30 vuz29",fontsize=16,color="black",shape="box"];372 -> 396[label="",style="solid", color="black", weight=3]; 373[label="gcd2 True vuz30 vuz29",fontsize=16,color="black",shape="box"];373 -> 397[label="",style="solid", color="black", weight=3]; 394[label="primQuotInt (Pos vuz2800) vuz450",fontsize=16,color="burlywood",shape="box"];1173[label="vuz450/Pos vuz4500",fontsize=10,color="white",style="solid",shape="box"];394 -> 1173[label="",style="solid", color="burlywood", weight=9]; 1173 -> 408[label="",style="solid", color="burlywood", weight=3]; 1174[label="vuz450/Neg vuz4500",fontsize=10,color="white",style="solid",shape="box"];394 -> 1174[label="",style="solid", color="burlywood", weight=9]; 1174 -> 409[label="",style="solid", color="burlywood", weight=3]; 395[label="primQuotInt (Neg vuz2800) vuz450",fontsize=16,color="burlywood",shape="box"];1175[label="vuz450/Pos vuz4500",fontsize=10,color="white",style="solid",shape="box"];395 -> 1175[label="",style="solid", color="burlywood", weight=9]; 1175 -> 410[label="",style="solid", color="burlywood", weight=3]; 1176[label="vuz450/Neg vuz4500",fontsize=10,color="white",style="solid",shape="box"];395 -> 1176[label="",style="solid", color="burlywood", weight=9]; 1176 -> 411[label="",style="solid", color="burlywood", weight=3]; 416 -> 142[label="",style="dashed", color="red", weight=0]; 416[label="vuz33 == fromInt (Pos Zero)",fontsize=16,color="magenta"];416 -> 421[label="",style="dashed", color="magenta", weight=3]; 415[label="gcd2 vuz51 vuz33 vuz32",fontsize=16,color="burlywood",shape="triangle"];1177[label="vuz51/False",fontsize=10,color="white",style="solid",shape="box"];415 -> 1177[label="",style="solid", color="burlywood", weight=9]; 1177 -> 422[label="",style="solid", color="burlywood", weight=3]; 1178[label="vuz51/True",fontsize=10,color="white",style="solid",shape="box"];415 -> 1178[label="",style="solid", color="burlywood", weight=9]; 1178 -> 423[label="",style="solid", color="burlywood", weight=3]; 417[label="Pos (primDivNatS vuz310 (Succ vuz4900))",fontsize=16,color="green",shape="box"];417 -> 439[label="",style="dashed", color="green", weight=3]; 418[label="error []",fontsize=16,color="black",shape="triangle"];418 -> 440[label="",style="solid", color="black", weight=3]; 419[label="Neg (primDivNatS vuz310 (Succ vuz4900))",fontsize=16,color="green",shape="box"];419 -> 441[label="",style="dashed", color="green", weight=3]; 420 -> 418[label="",style="dashed", color="red", weight=0]; 420[label="error []",fontsize=16,color="magenta"];276[label="vuz33",fontsize=16,color="green",shape="box"];277[label="primQuotInt (Neg vuz310) (gcd2 False vuz33 vuz32)",fontsize=16,color="black",shape="box"];277 -> 284[label="",style="solid", color="black", weight=3]; 278[label="primQuotInt (Neg vuz310) (gcd2 True vuz33 vuz32)",fontsize=16,color="black",shape="box"];278 -> 285[label="",style="solid", color="black", weight=3]; 396[label="gcd0 vuz30 vuz29",fontsize=16,color="black",shape="triangle"];396 -> 412[label="",style="solid", color="black", weight=3]; 397 -> 413[label="",style="dashed", color="red", weight=0]; 397[label="gcd1 (vuz29 == fromInt (Pos Zero)) vuz30 vuz29",fontsize=16,color="magenta"];397 -> 414[label="",style="dashed", color="magenta", weight=3]; 408[label="primQuotInt (Pos vuz2800) (Pos vuz4500)",fontsize=16,color="burlywood",shape="box"];1179[label="vuz4500/Succ vuz45000",fontsize=10,color="white",style="solid",shape="box"];408 -> 1179[label="",style="solid", color="burlywood", weight=9]; 1179 -> 424[label="",style="solid", color="burlywood", weight=3]; 1180[label="vuz4500/Zero",fontsize=10,color="white",style="solid",shape="box"];408 -> 1180[label="",style="solid", color="burlywood", weight=9]; 1180 -> 425[label="",style="solid", color="burlywood", weight=3]; 409[label="primQuotInt (Pos vuz2800) (Neg vuz4500)",fontsize=16,color="burlywood",shape="box"];1181[label="vuz4500/Succ vuz45000",fontsize=10,color="white",style="solid",shape="box"];409 -> 1181[label="",style="solid", color="burlywood", weight=9]; 1181 -> 426[label="",style="solid", color="burlywood", weight=3]; 1182[label="vuz4500/Zero",fontsize=10,color="white",style="solid",shape="box"];409 -> 1182[label="",style="solid", color="burlywood", weight=9]; 1182 -> 427[label="",style="solid", color="burlywood", weight=3]; 410[label="primQuotInt (Neg vuz2800) (Pos vuz4500)",fontsize=16,color="burlywood",shape="box"];1183[label="vuz4500/Succ vuz45000",fontsize=10,color="white",style="solid",shape="box"];410 -> 1183[label="",style="solid", color="burlywood", weight=9]; 1183 -> 428[label="",style="solid", color="burlywood", weight=3]; 1184[label="vuz4500/Zero",fontsize=10,color="white",style="solid",shape="box"];410 -> 1184[label="",style="solid", color="burlywood", weight=9]; 1184 -> 429[label="",style="solid", color="burlywood", weight=3]; 411[label="primQuotInt (Neg vuz2800) (Neg vuz4500)",fontsize=16,color="burlywood",shape="box"];1185[label="vuz4500/Succ vuz45000",fontsize=10,color="white",style="solid",shape="box"];411 -> 1185[label="",style="solid", color="burlywood", weight=9]; 1185 -> 430[label="",style="solid", color="burlywood", weight=3]; 1186[label="vuz4500/Zero",fontsize=10,color="white",style="solid",shape="box"];411 -> 1186[label="",style="solid", color="burlywood", weight=9]; 1186 -> 431[label="",style="solid", color="burlywood", weight=3]; 421[label="vuz33",fontsize=16,color="green",shape="box"];422[label="gcd2 False vuz33 vuz32",fontsize=16,color="black",shape="box"];422 -> 442[label="",style="solid", color="black", weight=3]; 423[label="gcd2 True vuz33 vuz32",fontsize=16,color="black",shape="box"];423 -> 443[label="",style="solid", color="black", weight=3]; 439[label="primDivNatS vuz310 (Succ vuz4900)",fontsize=16,color="burlywood",shape="triangle"];1187[label="vuz310/Succ vuz3100",fontsize=10,color="white",style="solid",shape="box"];439 -> 1187[label="",style="solid", color="burlywood", weight=9]; 1187 -> 459[label="",style="solid", color="burlywood", weight=3]; 1188[label="vuz310/Zero",fontsize=10,color="white",style="solid",shape="box"];439 -> 1188[label="",style="solid", color="burlywood", weight=9]; 1188 -> 460[label="",style="solid", color="burlywood", weight=3]; 440[label="error []",fontsize=16,color="red",shape="box"];441 -> 439[label="",style="dashed", color="red", weight=0]; 441[label="primDivNatS vuz310 (Succ vuz4900)",fontsize=16,color="magenta"];441 -> 461[label="",style="dashed", color="magenta", weight=3]; 284[label="primQuotInt (Neg vuz310) (gcd0 vuz33 vuz32)",fontsize=16,color="black",shape="triangle"];284 -> 293[label="",style="solid", color="black", weight=3]; 285 -> 294[label="",style="dashed", color="red", weight=0]; 285[label="primQuotInt (Neg vuz310) (gcd1 (vuz32 == fromInt (Pos Zero)) vuz33 vuz32)",fontsize=16,color="magenta"];285 -> 295[label="",style="dashed", color="magenta", weight=3]; 412[label="gcd0Gcd' (abs vuz30) (abs vuz29)",fontsize=16,color="black",shape="box"];412 -> 432[label="",style="solid", color="black", weight=3]; 414 -> 144[label="",style="dashed", color="red", weight=0]; 414[label="vuz29 == fromInt (Pos Zero)",fontsize=16,color="magenta"];414 -> 433[label="",style="dashed", color="magenta", weight=3]; 413[label="gcd1 vuz50 vuz30 vuz29",fontsize=16,color="burlywood",shape="triangle"];1189[label="vuz50/False",fontsize=10,color="white",style="solid",shape="box"];413 -> 1189[label="",style="solid", color="burlywood", weight=9]; 1189 -> 434[label="",style="solid", color="burlywood", weight=3]; 1190[label="vuz50/True",fontsize=10,color="white",style="solid",shape="box"];413 -> 1190[label="",style="solid", color="burlywood", weight=9]; 1190 -> 435[label="",style="solid", color="burlywood", weight=3]; 424[label="primQuotInt (Pos vuz2800) (Pos (Succ vuz45000))",fontsize=16,color="black",shape="box"];424 -> 444[label="",style="solid", color="black", weight=3]; 425[label="primQuotInt (Pos vuz2800) (Pos Zero)",fontsize=16,color="black",shape="box"];425 -> 445[label="",style="solid", color="black", weight=3]; 426[label="primQuotInt (Pos vuz2800) (Neg (Succ vuz45000))",fontsize=16,color="black",shape="box"];426 -> 446[label="",style="solid", color="black", weight=3]; 427[label="primQuotInt (Pos vuz2800) (Neg Zero)",fontsize=16,color="black",shape="box"];427 -> 447[label="",style="solid", color="black", weight=3]; 428[label="primQuotInt (Neg vuz2800) (Pos (Succ vuz45000))",fontsize=16,color="black",shape="box"];428 -> 448[label="",style="solid", color="black", weight=3]; 429[label="primQuotInt (Neg vuz2800) (Pos Zero)",fontsize=16,color="black",shape="box"];429 -> 449[label="",style="solid", color="black", weight=3]; 430[label="primQuotInt (Neg vuz2800) (Neg (Succ vuz45000))",fontsize=16,color="black",shape="box"];430 -> 450[label="",style="solid", color="black", weight=3]; 431[label="primQuotInt (Neg vuz2800) (Neg Zero)",fontsize=16,color="black",shape="box"];431 -> 451[label="",style="solid", color="black", weight=3]; 442[label="gcd0 vuz33 vuz32",fontsize=16,color="black",shape="triangle"];442 -> 462[label="",style="solid", color="black", weight=3]; 443 -> 463[label="",style="dashed", color="red", weight=0]; 443[label="gcd1 (vuz32 == fromInt (Pos Zero)) vuz33 vuz32",fontsize=16,color="magenta"];443 -> 464[label="",style="dashed", color="magenta", weight=3]; 459[label="primDivNatS (Succ vuz3100) (Succ vuz4900)",fontsize=16,color="black",shape="box"];459 -> 465[label="",style="solid", color="black", weight=3]; 460[label="primDivNatS Zero (Succ vuz4900)",fontsize=16,color="black",shape="box"];460 -> 466[label="",style="solid", color="black", weight=3]; 461[label="vuz4900",fontsize=16,color="green",shape="box"];293[label="primQuotInt (Neg vuz310) (gcd0Gcd' (abs vuz33) (abs vuz32))",fontsize=16,color="black",shape="box"];293 -> 303[label="",style="solid", color="black", weight=3]; 295 -> 142[label="",style="dashed", color="red", weight=0]; 295[label="vuz32 == fromInt (Pos Zero)",fontsize=16,color="magenta"];295 -> 304[label="",style="dashed", color="magenta", weight=3]; 294[label="primQuotInt (Neg vuz310) (gcd1 vuz39 vuz33 vuz32)",fontsize=16,color="burlywood",shape="triangle"];1191[label="vuz39/False",fontsize=10,color="white",style="solid",shape="box"];294 -> 1191[label="",style="solid", color="burlywood", weight=9]; 1191 -> 305[label="",style="solid", color="burlywood", weight=3]; 1192[label="vuz39/True",fontsize=10,color="white",style="solid",shape="box"];294 -> 1192[label="",style="solid", color="burlywood", weight=9]; 1192 -> 306[label="",style="solid", color="burlywood", weight=3]; 432[label="gcd0Gcd'2 (abs vuz30) (abs vuz29)",fontsize=16,color="black",shape="box"];432 -> 452[label="",style="solid", color="black", weight=3]; 433[label="vuz29",fontsize=16,color="green",shape="box"];434[label="gcd1 False vuz30 vuz29",fontsize=16,color="black",shape="box"];434 -> 453[label="",style="solid", color="black", weight=3]; 435[label="gcd1 True vuz30 vuz29",fontsize=16,color="black",shape="box"];435 -> 454[label="",style="solid", color="black", weight=3]; 444[label="Pos (primDivNatS vuz2800 (Succ vuz45000))",fontsize=16,color="green",shape="box"];444 -> 467[label="",style="dashed", color="green", weight=3]; 445 -> 418[label="",style="dashed", color="red", weight=0]; 445[label="error []",fontsize=16,color="magenta"];446[label="Neg (primDivNatS vuz2800 (Succ vuz45000))",fontsize=16,color="green",shape="box"];446 -> 468[label="",style="dashed", color="green", weight=3]; 447 -> 418[label="",style="dashed", color="red", weight=0]; 447[label="error []",fontsize=16,color="magenta"];448[label="Neg (primDivNatS vuz2800 (Succ vuz45000))",fontsize=16,color="green",shape="box"];448 -> 469[label="",style="dashed", color="green", weight=3]; 449 -> 418[label="",style="dashed", color="red", weight=0]; 449[label="error []",fontsize=16,color="magenta"];450[label="Pos (primDivNatS vuz2800 (Succ vuz45000))",fontsize=16,color="green",shape="box"];450 -> 470[label="",style="dashed", color="green", weight=3]; 451 -> 418[label="",style="dashed", color="red", weight=0]; 451[label="error []",fontsize=16,color="magenta"];462 -> 471[label="",style="dashed", color="red", weight=0]; 462[label="gcd0Gcd' (abs vuz33) (abs vuz32)",fontsize=16,color="magenta"];462 -> 472[label="",style="dashed", color="magenta", weight=3]; 462 -> 473[label="",style="dashed", color="magenta", weight=3]; 464 -> 142[label="",style="dashed", color="red", weight=0]; 464[label="vuz32 == fromInt (Pos Zero)",fontsize=16,color="magenta"];464 -> 476[label="",style="dashed", color="magenta", weight=3]; 463[label="gcd1 vuz54 vuz33 vuz32",fontsize=16,color="burlywood",shape="triangle"];1193[label="vuz54/False",fontsize=10,color="white",style="solid",shape="box"];463 -> 1193[label="",style="solid", color="burlywood", weight=9]; 1193 -> 477[label="",style="solid", color="burlywood", weight=3]; 1194[label="vuz54/True",fontsize=10,color="white",style="solid",shape="box"];463 -> 1194[label="",style="solid", color="burlywood", weight=9]; 1194 -> 478[label="",style="solid", color="burlywood", weight=3]; 465[label="primDivNatS0 vuz3100 vuz4900 (primGEqNatS vuz3100 vuz4900)",fontsize=16,color="burlywood",shape="box"];1195[label="vuz3100/Succ vuz31000",fontsize=10,color="white",style="solid",shape="box"];465 -> 1195[label="",style="solid", color="burlywood", weight=9]; 1195 -> 479[label="",style="solid", color="burlywood", weight=3]; 1196[label="vuz3100/Zero",fontsize=10,color="white",style="solid",shape="box"];465 -> 1196[label="",style="solid", color="burlywood", weight=9]; 1196 -> 480[label="",style="solid", color="burlywood", weight=3]; 466[label="Zero",fontsize=16,color="green",shape="box"];303[label="primQuotInt (Neg vuz310) (gcd0Gcd'2 (abs vuz33) (abs vuz32))",fontsize=16,color="black",shape="box"];303 -> 313[label="",style="solid", color="black", weight=3]; 304[label="vuz32",fontsize=16,color="green",shape="box"];305[label="primQuotInt (Neg vuz310) (gcd1 False vuz33 vuz32)",fontsize=16,color="black",shape="box"];305 -> 314[label="",style="solid", color="black", weight=3]; 306[label="primQuotInt (Neg vuz310) (gcd1 True vuz33 vuz32)",fontsize=16,color="black",shape="box"];306 -> 315[label="",style="solid", color="black", weight=3]; 452 -> 481[label="",style="dashed", color="red", weight=0]; 452[label="gcd0Gcd'1 (abs vuz29 == fromInt (Pos Zero)) (abs vuz30) (abs vuz29)",fontsize=16,color="magenta"];452 -> 482[label="",style="dashed", color="magenta", weight=3]; 453 -> 396[label="",style="dashed", color="red", weight=0]; 453[label="gcd0 vuz30 vuz29",fontsize=16,color="magenta"];454[label="error []",fontsize=16,color="black",shape="box"];454 -> 483[label="",style="solid", color="black", weight=3]; 467 -> 439[label="",style="dashed", color="red", weight=0]; 467[label="primDivNatS vuz2800 (Succ vuz45000)",fontsize=16,color="magenta"];467 -> 484[label="",style="dashed", color="magenta", weight=3]; 467 -> 485[label="",style="dashed", color="magenta", weight=3]; 468 -> 439[label="",style="dashed", color="red", weight=0]; 468[label="primDivNatS vuz2800 (Succ vuz45000)",fontsize=16,color="magenta"];468 -> 486[label="",style="dashed", color="magenta", weight=3]; 468 -> 487[label="",style="dashed", color="magenta", weight=3]; 469 -> 439[label="",style="dashed", color="red", weight=0]; 469[label="primDivNatS vuz2800 (Succ vuz45000)",fontsize=16,color="magenta"];469 -> 488[label="",style="dashed", color="magenta", weight=3]; 469 -> 489[label="",style="dashed", color="magenta", weight=3]; 470 -> 439[label="",style="dashed", color="red", weight=0]; 470[label="primDivNatS vuz2800 (Succ vuz45000)",fontsize=16,color="magenta"];470 -> 490[label="",style="dashed", color="magenta", weight=3]; 470 -> 491[label="",style="dashed", color="magenta", weight=3]; 472 -> 328[label="",style="dashed", color="red", weight=0]; 472[label="abs vuz32",fontsize=16,color="magenta"];473 -> 328[label="",style="dashed", color="red", weight=0]; 473[label="abs vuz33",fontsize=16,color="magenta"];473 -> 492[label="",style="dashed", color="magenta", weight=3]; 471[label="gcd0Gcd' vuz56 vuz55",fontsize=16,color="black",shape="triangle"];471 -> 493[label="",style="solid", color="black", weight=3]; 476[label="vuz32",fontsize=16,color="green",shape="box"];477[label="gcd1 False vuz33 vuz32",fontsize=16,color="black",shape="box"];477 -> 494[label="",style="solid", color="black", weight=3]; 478[label="gcd1 True vuz33 vuz32",fontsize=16,color="black",shape="box"];478 -> 495[label="",style="solid", color="black", weight=3]; 479[label="primDivNatS0 (Succ vuz31000) vuz4900 (primGEqNatS (Succ vuz31000) vuz4900)",fontsize=16,color="burlywood",shape="box"];1197[label="vuz4900/Succ vuz49000",fontsize=10,color="white",style="solid",shape="box"];479 -> 1197[label="",style="solid", color="burlywood", weight=9]; 1197 -> 496[label="",style="solid", color="burlywood", weight=3]; 1198[label="vuz4900/Zero",fontsize=10,color="white",style="solid",shape="box"];479 -> 1198[label="",style="solid", color="burlywood", weight=9]; 1198 -> 497[label="",style="solid", color="burlywood", weight=3]; 480[label="primDivNatS0 Zero vuz4900 (primGEqNatS Zero vuz4900)",fontsize=16,color="burlywood",shape="box"];1199[label="vuz4900/Succ vuz49000",fontsize=10,color="white",style="solid",shape="box"];480 -> 1199[label="",style="solid", color="burlywood", weight=9]; 1199 -> 498[label="",style="solid", color="burlywood", weight=3]; 1200[label="vuz4900/Zero",fontsize=10,color="white",style="solid",shape="box"];480 -> 1200[label="",style="solid", color="burlywood", weight=9]; 1200 -> 499[label="",style="solid", color="burlywood", weight=3]; 313 -> 322[label="",style="dashed", color="red", weight=0]; 313[label="primQuotInt (Neg vuz310) (gcd0Gcd'1 (abs vuz32 == fromInt (Pos Zero)) (abs vuz33) (abs vuz32))",fontsize=16,color="magenta"];313 -> 323[label="",style="dashed", color="magenta", weight=3]; 314 -> 284[label="",style="dashed", color="red", weight=0]; 314[label="primQuotInt (Neg vuz310) (gcd0 vuz33 vuz32)",fontsize=16,color="magenta"];315[label="primQuotInt (Neg vuz310) (error [])",fontsize=16,color="black",shape="box"];315 -> 324[label="",style="solid", color="black", weight=3]; 482 -> 144[label="",style="dashed", color="red", weight=0]; 482[label="abs vuz29 == fromInt (Pos Zero)",fontsize=16,color="magenta"];482 -> 500[label="",style="dashed", color="magenta", weight=3]; 481[label="gcd0Gcd'1 vuz57 (abs vuz30) (abs vuz29)",fontsize=16,color="burlywood",shape="triangle"];1201[label="vuz57/False",fontsize=10,color="white",style="solid",shape="box"];481 -> 1201[label="",style="solid", color="burlywood", weight=9]; 1201 -> 501[label="",style="solid", color="burlywood", weight=3]; 1202[label="vuz57/True",fontsize=10,color="white",style="solid",shape="box"];481 -> 1202[label="",style="solid", color="burlywood", weight=9]; 1202 -> 502[label="",style="solid", color="burlywood", weight=3]; 483[label="error []",fontsize=16,color="red",shape="box"];484[label="vuz2800",fontsize=16,color="green",shape="box"];485[label="vuz45000",fontsize=16,color="green",shape="box"];486[label="vuz2800",fontsize=16,color="green",shape="box"];487[label="vuz45000",fontsize=16,color="green",shape="box"];488[label="vuz2800",fontsize=16,color="green",shape="box"];489[label="vuz45000",fontsize=16,color="green",shape="box"];490[label="vuz2800",fontsize=16,color="green",shape="box"];491[label="vuz45000",fontsize=16,color="green",shape="box"];328[label="abs vuz32",fontsize=16,color="black",shape="triangle"];328 -> 357[label="",style="solid", color="black", weight=3]; 492[label="vuz33",fontsize=16,color="green",shape="box"];493[label="gcd0Gcd'2 vuz56 vuz55",fontsize=16,color="black",shape="box"];493 -> 505[label="",style="solid", color="black", weight=3]; 494 -> 442[label="",style="dashed", color="red", weight=0]; 494[label="gcd0 vuz33 vuz32",fontsize=16,color="magenta"];495 -> 418[label="",style="dashed", color="red", weight=0]; 495[label="error []",fontsize=16,color="magenta"];496[label="primDivNatS0 (Succ vuz31000) (Succ vuz49000) (primGEqNatS (Succ vuz31000) (Succ vuz49000))",fontsize=16,color="black",shape="box"];496 -> 506[label="",style="solid", color="black", weight=3]; 497[label="primDivNatS0 (Succ vuz31000) Zero (primGEqNatS (Succ vuz31000) Zero)",fontsize=16,color="black",shape="box"];497 -> 507[label="",style="solid", color="black", weight=3]; 498[label="primDivNatS0 Zero (Succ vuz49000) (primGEqNatS Zero (Succ vuz49000))",fontsize=16,color="black",shape="box"];498 -> 508[label="",style="solid", color="black", weight=3]; 499[label="primDivNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];499 -> 509[label="",style="solid", color="black", weight=3]; 323 -> 142[label="",style="dashed", color="red", weight=0]; 323[label="abs vuz32 == fromInt (Pos Zero)",fontsize=16,color="magenta"];323 -> 331[label="",style="dashed", color="magenta", weight=3]; 322[label="primQuotInt (Neg vuz310) (gcd0Gcd'1 vuz42 (abs vuz33) (abs vuz32))",fontsize=16,color="burlywood",shape="triangle"];1203[label="vuz42/False",fontsize=10,color="white",style="solid",shape="box"];322 -> 1203[label="",style="solid", color="burlywood", weight=9]; 1203 -> 332[label="",style="solid", color="burlywood", weight=3]; 1204[label="vuz42/True",fontsize=10,color="white",style="solid",shape="box"];322 -> 1204[label="",style="solid", color="burlywood", weight=9]; 1204 -> 333[label="",style="solid", color="burlywood", weight=3]; 324[label="error []",fontsize=16,color="red",shape="box"];500[label="abs vuz29",fontsize=16,color="black",shape="triangle"];500 -> 510[label="",style="solid", color="black", weight=3]; 501[label="gcd0Gcd'1 False (abs vuz30) (abs vuz29)",fontsize=16,color="black",shape="box"];501 -> 511[label="",style="solid", color="black", weight=3]; 502[label="gcd0Gcd'1 True (abs vuz30) (abs vuz29)",fontsize=16,color="black",shape="box"];502 -> 512[label="",style="solid", color="black", weight=3]; 357[label="absReal vuz32",fontsize=16,color="black",shape="box"];357 -> 364[label="",style="solid", color="black", weight=3]; 505 -> 516[label="",style="dashed", color="red", weight=0]; 505[label="gcd0Gcd'1 (vuz55 == fromInt (Pos Zero)) vuz56 vuz55",fontsize=16,color="magenta"];505 -> 517[label="",style="dashed", color="magenta", weight=3]; 506 -> 853[label="",style="dashed", color="red", weight=0]; 506[label="primDivNatS0 (Succ vuz31000) (Succ vuz49000) (primGEqNatS vuz31000 vuz49000)",fontsize=16,color="magenta"];506 -> 854[label="",style="dashed", color="magenta", weight=3]; 506 -> 855[label="",style="dashed", color="magenta", weight=3]; 506 -> 856[label="",style="dashed", color="magenta", weight=3]; 506 -> 857[label="",style="dashed", color="magenta", weight=3]; 507[label="primDivNatS0 (Succ vuz31000) Zero True",fontsize=16,color="black",shape="box"];507 -> 520[label="",style="solid", color="black", weight=3]; 508[label="primDivNatS0 Zero (Succ vuz49000) False",fontsize=16,color="black",shape="box"];508 -> 521[label="",style="solid", color="black", weight=3]; 509[label="primDivNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];509 -> 522[label="",style="solid", color="black", weight=3]; 331 -> 328[label="",style="dashed", color="red", weight=0]; 331[label="abs vuz32",fontsize=16,color="magenta"];332[label="primQuotInt (Neg vuz310) (gcd0Gcd'1 False (abs vuz33) (abs vuz32))",fontsize=16,color="black",shape="box"];332 -> 360[label="",style="solid", color="black", weight=3]; 333[label="primQuotInt (Neg vuz310) (gcd0Gcd'1 True (abs vuz33) (abs vuz32))",fontsize=16,color="black",shape="box"];333 -> 361[label="",style="solid", color="black", weight=3]; 510[label="absReal vuz29",fontsize=16,color="black",shape="box"];510 -> 523[label="",style="solid", color="black", weight=3]; 511 -> 524[label="",style="dashed", color="red", weight=0]; 511[label="gcd0Gcd'0 (abs vuz30) (abs vuz29)",fontsize=16,color="magenta"];511 -> 525[label="",style="dashed", color="magenta", weight=3]; 511 -> 526[label="",style="dashed", color="magenta", weight=3]; 512 -> 500[label="",style="dashed", color="red", weight=0]; 512[label="abs vuz30",fontsize=16,color="magenta"];512 -> 527[label="",style="dashed", color="magenta", weight=3]; 364[label="absReal2 vuz32",fontsize=16,color="black",shape="box"];364 -> 402[label="",style="solid", color="black", weight=3]; 517 -> 142[label="",style="dashed", color="red", weight=0]; 517[label="vuz55 == fromInt (Pos Zero)",fontsize=16,color="magenta"];517 -> 528[label="",style="dashed", color="magenta", weight=3]; 516[label="gcd0Gcd'1 vuz58 vuz56 vuz55",fontsize=16,color="burlywood",shape="triangle"];1205[label="vuz58/False",fontsize=10,color="white",style="solid",shape="box"];516 -> 1205[label="",style="solid", color="burlywood", weight=9]; 1205 -> 529[label="",style="solid", color="burlywood", weight=3]; 1206[label="vuz58/True",fontsize=10,color="white",style="solid",shape="box"];516 -> 1206[label="",style="solid", color="burlywood", weight=9]; 1206 -> 530[label="",style="solid", color="burlywood", weight=3]; 854[label="vuz49000",fontsize=16,color="green",shape="box"];855[label="vuz31000",fontsize=16,color="green",shape="box"];856[label="vuz31000",fontsize=16,color="green",shape="box"];857[label="vuz49000",fontsize=16,color="green",shape="box"];853[label="primDivNatS0 (Succ vuz78) (Succ vuz79) (primGEqNatS vuz80 vuz81)",fontsize=16,color="burlywood",shape="triangle"];1207[label="vuz80/Succ vuz800",fontsize=10,color="white",style="solid",shape="box"];853 -> 1207[label="",style="solid", color="burlywood", weight=9]; 1207 -> 886[label="",style="solid", color="burlywood", weight=3]; 1208[label="vuz80/Zero",fontsize=10,color="white",style="solid",shape="box"];853 -> 1208[label="",style="solid", color="burlywood", weight=9]; 1208 -> 887[label="",style="solid", color="burlywood", weight=3]; 520[label="Succ (primDivNatS (primMinusNatS (Succ vuz31000) Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];520 -> 535[label="",style="dashed", color="green", weight=3]; 521[label="Zero",fontsize=16,color="green",shape="box"];522[label="Succ (primDivNatS (primMinusNatS Zero Zero) (Succ Zero))",fontsize=16,color="green",shape="box"];522 -> 536[label="",style="dashed", color="green", weight=3]; 360 -> 370[label="",style="dashed", color="red", weight=0]; 360[label="primQuotInt (Neg vuz310) (gcd0Gcd'0 (abs vuz33) (abs vuz32))",fontsize=16,color="magenta"];360 -> 398[label="",style="dashed", color="magenta", weight=3]; 360 -> 399[label="",style="dashed", color="magenta", weight=3]; 361 -> 370[label="",style="dashed", color="red", weight=0]; 361[label="primQuotInt (Neg vuz310) (abs vuz33)",fontsize=16,color="magenta"];361 -> 400[label="",style="dashed", color="magenta", weight=3]; 361 -> 401[label="",style="dashed", color="magenta", weight=3]; 523[label="absReal2 vuz29",fontsize=16,color="black",shape="box"];523 -> 537[label="",style="solid", color="black", weight=3]; 525 -> 500[label="",style="dashed", color="red", weight=0]; 525[label="abs vuz30",fontsize=16,color="magenta"];525 -> 538[label="",style="dashed", color="magenta", weight=3]; 526 -> 500[label="",style="dashed", color="red", weight=0]; 526[label="abs vuz29",fontsize=16,color="magenta"];524[label="gcd0Gcd'0 vuz60 vuz59",fontsize=16,color="black",shape="triangle"];524 -> 539[label="",style="solid", color="black", weight=3]; 527[label="vuz30",fontsize=16,color="green",shape="box"];402[label="absReal1 vuz32 (vuz32 >= fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];402 -> 458[label="",style="solid", color="black", weight=3]; 528[label="vuz55",fontsize=16,color="green",shape="box"];529[label="gcd0Gcd'1 False vuz56 vuz55",fontsize=16,color="black",shape="box"];529 -> 546[label="",style="solid", color="black", weight=3]; 530[label="gcd0Gcd'1 True vuz56 vuz55",fontsize=16,color="black",shape="box"];530 -> 547[label="",style="solid", color="black", weight=3]; 886[label="primDivNatS0 (Succ vuz78) (Succ vuz79) (primGEqNatS (Succ vuz800) vuz81)",fontsize=16,color="burlywood",shape="box"];1209[label="vuz81/Succ vuz810",fontsize=10,color="white",style="solid",shape="box"];886 -> 1209[label="",style="solid", color="burlywood", weight=9]; 1209 -> 894[label="",style="solid", color="burlywood", weight=3]; 1210[label="vuz81/Zero",fontsize=10,color="white",style="solid",shape="box"];886 -> 1210[label="",style="solid", color="burlywood", weight=9]; 1210 -> 895[label="",style="solid", color="burlywood", weight=3]; 887[label="primDivNatS0 (Succ vuz78) (Succ vuz79) (primGEqNatS Zero vuz81)",fontsize=16,color="burlywood",shape="box"];1211[label="vuz81/Succ vuz810",fontsize=10,color="white",style="solid",shape="box"];887 -> 1211[label="",style="solid", color="burlywood", weight=9]; 1211 -> 896[label="",style="solid", color="burlywood", weight=3]; 1212[label="vuz81/Zero",fontsize=10,color="white",style="solid",shape="box"];887 -> 1212[label="",style="solid", color="burlywood", weight=9]; 1212 -> 897[label="",style="solid", color="burlywood", weight=3]; 535 -> 439[label="",style="dashed", color="red", weight=0]; 535[label="primDivNatS (primMinusNatS (Succ vuz31000) Zero) (Succ Zero)",fontsize=16,color="magenta"];535 -> 552[label="",style="dashed", color="magenta", weight=3]; 535 -> 553[label="",style="dashed", color="magenta", weight=3]; 536 -> 439[label="",style="dashed", color="red", weight=0]; 536[label="primDivNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];536 -> 554[label="",style="dashed", color="magenta", weight=3]; 536 -> 555[label="",style="dashed", color="magenta", weight=3]; 398[label="Neg vuz310",fontsize=16,color="green",shape="box"];399 -> 436[label="",style="dashed", color="red", weight=0]; 399[label="gcd0Gcd'0 (abs vuz33) (abs vuz32)",fontsize=16,color="magenta"];399 -> 437[label="",style="dashed", color="magenta", weight=3]; 399 -> 438[label="",style="dashed", color="magenta", weight=3]; 400[label="Neg vuz310",fontsize=16,color="green",shape="box"];401 -> 328[label="",style="dashed", color="red", weight=0]; 401[label="abs vuz33",fontsize=16,color="magenta"];401 -> 455[label="",style="dashed", color="magenta", weight=3]; 537[label="absReal1 vuz29 (vuz29 >= fromInt (Pos Zero))",fontsize=16,color="black",shape="box"];537 -> 556[label="",style="solid", color="black", weight=3]; 538[label="vuz30",fontsize=16,color="green",shape="box"];539[label="gcd0Gcd' vuz59 (vuz60 `rem` vuz59)",fontsize=16,color="black",shape="box"];539 -> 557[label="",style="solid", color="black", weight=3]; 458[label="absReal1 vuz32 (compare vuz32 (fromInt (Pos Zero)) /= LT)",fontsize=16,color="black",shape="box"];458 -> 503[label="",style="solid", color="black", weight=3]; 546 -> 436[label="",style="dashed", color="red", weight=0]; 546[label="gcd0Gcd'0 vuz56 vuz55",fontsize=16,color="magenta"];546 -> 570[label="",style="dashed", color="magenta", weight=3]; 546 -> 571[label="",style="dashed", color="magenta", weight=3]; 547[label="vuz56",fontsize=16,color="green",shape="box"];894[label="primDivNatS0 (Succ vuz78) (Succ vuz79) (primGEqNatS (Succ vuz800) (Succ vuz810))",fontsize=16,color="black",shape="box"];894 -> 906[label="",style="solid", color="black", weight=3]; 895[label="primDivNatS0 (Succ vuz78) (Succ vuz79) (primGEqNatS (Succ vuz800) Zero)",fontsize=16,color="black",shape="box"];895 -> 907[label="",style="solid", color="black", weight=3]; 896[label="primDivNatS0 (Succ vuz78) (Succ vuz79) (primGEqNatS Zero (Succ vuz810))",fontsize=16,color="black",shape="box"];896 -> 908[label="",style="solid", color="black", weight=3]; 897[label="primDivNatS0 (Succ vuz78) (Succ vuz79) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];897 -> 909[label="",style="solid", color="black", weight=3]; 552[label="primMinusNatS (Succ vuz31000) Zero",fontsize=16,color="black",shape="triangle"];552 -> 577[label="",style="solid", color="black", weight=3]; 553[label="Zero",fontsize=16,color="green",shape="box"];554[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="triangle"];554 -> 578[label="",style="solid", color="black", weight=3]; 555[label="Zero",fontsize=16,color="green",shape="box"];437 -> 328[label="",style="dashed", color="red", weight=0]; 437[label="abs vuz33",fontsize=16,color="magenta"];437 -> 456[label="",style="dashed", color="magenta", weight=3]; 438 -> 328[label="",style="dashed", color="red", weight=0]; 438[label="abs vuz32",fontsize=16,color="magenta"];436[label="gcd0Gcd'0 vuz53 vuz52",fontsize=16,color="black",shape="triangle"];436 -> 457[label="",style="solid", color="black", weight=3]; 455[label="vuz33",fontsize=16,color="green",shape="box"];556[label="absReal1 vuz29 (compare vuz29 (fromInt (Pos Zero)) /= LT)",fontsize=16,color="black",shape="box"];556 -> 579[label="",style="solid", color="black", weight=3]; 557[label="gcd0Gcd'2 vuz59 (vuz60 `rem` vuz59)",fontsize=16,color="black",shape="box"];557 -> 580[label="",style="solid", color="black", weight=3]; 503[label="absReal1 vuz32 (not (compare vuz32 (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];503 -> 513[label="",style="solid", color="black", weight=3]; 570[label="vuz56",fontsize=16,color="green",shape="box"];571[label="vuz55",fontsize=16,color="green",shape="box"];906 -> 853[label="",style="dashed", color="red", weight=0]; 906[label="primDivNatS0 (Succ vuz78) (Succ vuz79) (primGEqNatS vuz800 vuz810)",fontsize=16,color="magenta"];906 -> 916[label="",style="dashed", color="magenta", weight=3]; 906 -> 917[label="",style="dashed", color="magenta", weight=3]; 907[label="primDivNatS0 (Succ vuz78) (Succ vuz79) True",fontsize=16,color="black",shape="triangle"];907 -> 918[label="",style="solid", color="black", weight=3]; 908[label="primDivNatS0 (Succ vuz78) (Succ vuz79) False",fontsize=16,color="black",shape="box"];908 -> 919[label="",style="solid", color="black", weight=3]; 909 -> 907[label="",style="dashed", color="red", weight=0]; 909[label="primDivNatS0 (Succ vuz78) (Succ vuz79) True",fontsize=16,color="magenta"];577[label="Succ vuz31000",fontsize=16,color="green",shape="box"];578[label="Zero",fontsize=16,color="green",shape="box"];456[label="vuz33",fontsize=16,color="green",shape="box"];457 -> 471[label="",style="dashed", color="red", weight=0]; 457[label="gcd0Gcd' vuz52 (vuz53 `rem` vuz52)",fontsize=16,color="magenta"];457 -> 474[label="",style="dashed", color="magenta", weight=3]; 457 -> 475[label="",style="dashed", color="magenta", weight=3]; 579[label="absReal1 vuz29 (not (compare vuz29 (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];1213[label="vuz29/Integer vuz290",fontsize=10,color="white",style="solid",shape="box"];579 -> 1213[label="",style="solid", color="burlywood", weight=9]; 1213 -> 599[label="",style="solid", color="burlywood", weight=3]; 580 -> 600[label="",style="dashed", color="red", weight=0]; 580[label="gcd0Gcd'1 (vuz60 `rem` vuz59 == fromInt (Pos Zero)) vuz59 (vuz60 `rem` vuz59)",fontsize=16,color="magenta"];580 -> 601[label="",style="dashed", color="magenta", weight=3]; 513[label="absReal1 vuz32 (not (primCmpInt vuz32 (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];1214[label="vuz32/Pos vuz320",fontsize=10,color="white",style="solid",shape="box"];513 -> 1214[label="",style="solid", color="burlywood", weight=9]; 1214 -> 540[label="",style="solid", color="burlywood", weight=3]; 1215[label="vuz32/Neg vuz320",fontsize=10,color="white",style="solid",shape="box"];513 -> 1215[label="",style="solid", color="burlywood", weight=9]; 1215 -> 541[label="",style="solid", color="burlywood", weight=3]; 916[label="vuz800",fontsize=16,color="green",shape="box"];917[label="vuz810",fontsize=16,color="green",shape="box"];918[label="Succ (primDivNatS (primMinusNatS (Succ vuz78) (Succ vuz79)) (Succ (Succ vuz79)))",fontsize=16,color="green",shape="box"];918 -> 926[label="",style="dashed", color="green", weight=3]; 919[label="Zero",fontsize=16,color="green",shape="box"];474[label="vuz53 `rem` vuz52",fontsize=16,color="black",shape="box"];474 -> 504[label="",style="solid", color="black", weight=3]; 475[label="vuz52",fontsize=16,color="green",shape="box"];599[label="absReal1 (Integer vuz290) (not (compare (Integer vuz290) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];599 -> 610[label="",style="solid", color="black", weight=3]; 601 -> 144[label="",style="dashed", color="red", weight=0]; 601[label="vuz60 `rem` vuz59 == fromInt (Pos Zero)",fontsize=16,color="magenta"];601 -> 611[label="",style="dashed", color="magenta", weight=3]; 600[label="gcd0Gcd'1 vuz61 vuz59 (vuz60 `rem` vuz59)",fontsize=16,color="burlywood",shape="triangle"];1216[label="vuz61/False",fontsize=10,color="white",style="solid",shape="box"];600 -> 1216[label="",style="solid", color="burlywood", weight=9]; 1216 -> 612[label="",style="solid", color="burlywood", weight=3]; 1217[label="vuz61/True",fontsize=10,color="white",style="solid",shape="box"];600 -> 1217[label="",style="solid", color="burlywood", weight=9]; 1217 -> 613[label="",style="solid", color="burlywood", weight=3]; 540[label="absReal1 (Pos vuz320) (not (primCmpInt (Pos vuz320) (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];1218[label="vuz320/Succ vuz3200",fontsize=10,color="white",style="solid",shape="box"];540 -> 1218[label="",style="solid", color="burlywood", weight=9]; 1218 -> 558[label="",style="solid", color="burlywood", weight=3]; 1219[label="vuz320/Zero",fontsize=10,color="white",style="solid",shape="box"];540 -> 1219[label="",style="solid", color="burlywood", weight=9]; 1219 -> 559[label="",style="solid", color="burlywood", weight=3]; 541[label="absReal1 (Neg vuz320) (not (primCmpInt (Neg vuz320) (fromInt (Pos Zero)) == LT))",fontsize=16,color="burlywood",shape="box"];1220[label="vuz320/Succ vuz3200",fontsize=10,color="white",style="solid",shape="box"];541 -> 1220[label="",style="solid", color="burlywood", weight=9]; 1220 -> 560[label="",style="solid", color="burlywood", weight=3]; 1221[label="vuz320/Zero",fontsize=10,color="white",style="solid",shape="box"];541 -> 1221[label="",style="solid", color="burlywood", weight=9]; 1221 -> 561[label="",style="solid", color="burlywood", weight=3]; 926 -> 439[label="",style="dashed", color="red", weight=0]; 926[label="primDivNatS (primMinusNatS (Succ vuz78) (Succ vuz79)) (Succ (Succ vuz79))",fontsize=16,color="magenta"];926 -> 935[label="",style="dashed", color="magenta", weight=3]; 926 -> 936[label="",style="dashed", color="magenta", weight=3]; 504[label="primRemInt vuz53 vuz52",fontsize=16,color="burlywood",shape="triangle"];1222[label="vuz53/Pos vuz530",fontsize=10,color="white",style="solid",shape="box"];504 -> 1222[label="",style="solid", color="burlywood", weight=9]; 1222 -> 514[label="",style="solid", color="burlywood", weight=3]; 1223[label="vuz53/Neg vuz530",fontsize=10,color="white",style="solid",shape="box"];504 -> 1223[label="",style="solid", color="burlywood", weight=9]; 1223 -> 515[label="",style="solid", color="burlywood", weight=3]; 610[label="absReal1 (Integer vuz290) (not (compare (Integer vuz290) (Integer (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];610 -> 629[label="",style="solid", color="black", weight=3]; 611[label="vuz60 `rem` vuz59",fontsize=16,color="burlywood",shape="triangle"];1224[label="vuz60/Integer vuz600",fontsize=10,color="white",style="solid",shape="box"];611 -> 1224[label="",style="solid", color="burlywood", weight=9]; 1224 -> 630[label="",style="solid", color="burlywood", weight=3]; 612[label="gcd0Gcd'1 False vuz59 (vuz60 `rem` vuz59)",fontsize=16,color="black",shape="box"];612 -> 631[label="",style="solid", color="black", weight=3]; 613[label="gcd0Gcd'1 True vuz59 (vuz60 `rem` vuz59)",fontsize=16,color="black",shape="box"];613 -> 632[label="",style="solid", color="black", weight=3]; 558[label="absReal1 (Pos (Succ vuz3200)) (not (primCmpInt (Pos (Succ vuz3200)) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];558 -> 581[label="",style="solid", color="black", weight=3]; 559[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];559 -> 582[label="",style="solid", color="black", weight=3]; 560[label="absReal1 (Neg (Succ vuz3200)) (not (primCmpInt (Neg (Succ vuz3200)) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];560 -> 583[label="",style="solid", color="black", weight=3]; 561[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (fromInt (Pos Zero)) == LT))",fontsize=16,color="black",shape="box"];561 -> 584[label="",style="solid", color="black", weight=3]; 935[label="primMinusNatS (Succ vuz78) (Succ vuz79)",fontsize=16,color="black",shape="triangle"];935 -> 943[label="",style="solid", color="black", weight=3]; 936[label="Succ vuz79",fontsize=16,color="green",shape="box"];514[label="primRemInt (Pos vuz530) vuz52",fontsize=16,color="burlywood",shape="box"];1225[label="vuz52/Pos vuz520",fontsize=10,color="white",style="solid",shape="box"];514 -> 1225[label="",style="solid", color="burlywood", weight=9]; 1225 -> 542[label="",style="solid", color="burlywood", weight=3]; 1226[label="vuz52/Neg vuz520",fontsize=10,color="white",style="solid",shape="box"];514 -> 1226[label="",style="solid", color="burlywood", weight=9]; 1226 -> 543[label="",style="solid", color="burlywood", weight=3]; 515[label="primRemInt (Neg vuz530) vuz52",fontsize=16,color="burlywood",shape="box"];1227[label="vuz52/Pos vuz520",fontsize=10,color="white",style="solid",shape="box"];515 -> 1227[label="",style="solid", color="burlywood", weight=9]; 1227 -> 544[label="",style="solid", color="burlywood", weight=3]; 1228[label="vuz52/Neg vuz520",fontsize=10,color="white",style="solid",shape="box"];515 -> 1228[label="",style="solid", color="burlywood", weight=9]; 1228 -> 545[label="",style="solid", color="burlywood", weight=3]; 629[label="absReal1 (Integer vuz290) (not (primCmpInt vuz290 (Pos Zero) == LT))",fontsize=16,color="burlywood",shape="box"];1229[label="vuz290/Pos vuz2900",fontsize=10,color="white",style="solid",shape="box"];629 -> 1229[label="",style="solid", color="burlywood", weight=9]; 1229 -> 650[label="",style="solid", color="burlywood", weight=3]; 1230[label="vuz290/Neg vuz2900",fontsize=10,color="white",style="solid",shape="box"];629 -> 1230[label="",style="solid", color="burlywood", weight=9]; 1230 -> 651[label="",style="solid", color="burlywood", weight=3]; 630[label="Integer vuz600 `rem` vuz59",fontsize=16,color="burlywood",shape="box"];1231[label="vuz59/Integer vuz590",fontsize=10,color="white",style="solid",shape="box"];630 -> 1231[label="",style="solid", color="burlywood", weight=9]; 1231 -> 652[label="",style="solid", color="burlywood", weight=3]; 631 -> 524[label="",style="dashed", color="red", weight=0]; 631[label="gcd0Gcd'0 vuz59 (vuz60 `rem` vuz59)",fontsize=16,color="magenta"];631 -> 653[label="",style="dashed", color="magenta", weight=3]; 631 -> 654[label="",style="dashed", color="magenta", weight=3]; 632[label="vuz59",fontsize=16,color="green",shape="box"];581[label="absReal1 (Pos (Succ vuz3200)) (not (primCmpInt (Pos (Succ vuz3200)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];581 -> 614[label="",style="solid", color="black", weight=3]; 582[label="absReal1 (Pos Zero) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];582 -> 615[label="",style="solid", color="black", weight=3]; 583[label="absReal1 (Neg (Succ vuz3200)) (not (primCmpInt (Neg (Succ vuz3200)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];583 -> 616[label="",style="solid", color="black", weight=3]; 584[label="absReal1 (Neg Zero) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];584 -> 617[label="",style="solid", color="black", weight=3]; 943[label="primMinusNatS vuz78 vuz79",fontsize=16,color="burlywood",shape="triangle"];1232[label="vuz78/Succ vuz780",fontsize=10,color="white",style="solid",shape="box"];943 -> 1232[label="",style="solid", color="burlywood", weight=9]; 1232 -> 953[label="",style="solid", color="burlywood", weight=3]; 1233[label="vuz78/Zero",fontsize=10,color="white",style="solid",shape="box"];943 -> 1233[label="",style="solid", color="burlywood", weight=9]; 1233 -> 954[label="",style="solid", color="burlywood", weight=3]; 542[label="primRemInt (Pos vuz530) (Pos vuz520)",fontsize=16,color="burlywood",shape="box"];1234[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];542 -> 1234[label="",style="solid", color="burlywood", weight=9]; 1234 -> 562[label="",style="solid", color="burlywood", weight=3]; 1235[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];542 -> 1235[label="",style="solid", color="burlywood", weight=9]; 1235 -> 563[label="",style="solid", color="burlywood", weight=3]; 543[label="primRemInt (Pos vuz530) (Neg vuz520)",fontsize=16,color="burlywood",shape="box"];1236[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];543 -> 1236[label="",style="solid", color="burlywood", weight=9]; 1236 -> 564[label="",style="solid", color="burlywood", weight=3]; 1237[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];543 -> 1237[label="",style="solid", color="burlywood", weight=9]; 1237 -> 565[label="",style="solid", color="burlywood", weight=3]; 544[label="primRemInt (Neg vuz530) (Pos vuz520)",fontsize=16,color="burlywood",shape="box"];1238[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];544 -> 1238[label="",style="solid", color="burlywood", weight=9]; 1238 -> 566[label="",style="solid", color="burlywood", weight=3]; 1239[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];544 -> 1239[label="",style="solid", color="burlywood", weight=9]; 1239 -> 567[label="",style="solid", color="burlywood", weight=3]; 545[label="primRemInt (Neg vuz530) (Neg vuz520)",fontsize=16,color="burlywood",shape="box"];1240[label="vuz520/Succ vuz5200",fontsize=10,color="white",style="solid",shape="box"];545 -> 1240[label="",style="solid", color="burlywood", weight=9]; 1240 -> 568[label="",style="solid", color="burlywood", weight=3]; 1241[label="vuz520/Zero",fontsize=10,color="white",style="solid",shape="box"];545 -> 1241[label="",style="solid", color="burlywood", weight=9]; 1241 -> 569[label="",style="solid", color="burlywood", weight=3]; 650[label="absReal1 (Integer (Pos vuz2900)) (not (primCmpInt (Pos vuz2900) (Pos Zero) == LT))",fontsize=16,color="burlywood",shape="box"];1242[label="vuz2900/Succ vuz29000",fontsize=10,color="white",style="solid",shape="box"];650 -> 1242[label="",style="solid", color="burlywood", weight=9]; 1242 -> 669[label="",style="solid", color="burlywood", weight=3]; 1243[label="vuz2900/Zero",fontsize=10,color="white",style="solid",shape="box"];650 -> 1243[label="",style="solid", color="burlywood", weight=9]; 1243 -> 670[label="",style="solid", color="burlywood", weight=3]; 651[label="absReal1 (Integer (Neg vuz2900)) (not (primCmpInt (Neg vuz2900) (Pos Zero) == LT))",fontsize=16,color="burlywood",shape="box"];1244[label="vuz2900/Succ vuz29000",fontsize=10,color="white",style="solid",shape="box"];651 -> 1244[label="",style="solid", color="burlywood", weight=9]; 1244 -> 671[label="",style="solid", color="burlywood", weight=3]; 1245[label="vuz2900/Zero",fontsize=10,color="white",style="solid",shape="box"];651 -> 1245[label="",style="solid", color="burlywood", weight=9]; 1245 -> 672[label="",style="solid", color="burlywood", weight=3]; 652[label="Integer vuz600 `rem` Integer vuz590",fontsize=16,color="black",shape="box"];652 -> 673[label="",style="solid", color="black", weight=3]; 653[label="vuz59",fontsize=16,color="green",shape="box"];654 -> 611[label="",style="dashed", color="red", weight=0]; 654[label="vuz60 `rem` vuz59",fontsize=16,color="magenta"];614[label="absReal1 (Pos (Succ vuz3200)) (not (primCmpNat (Succ vuz3200) Zero == LT))",fontsize=16,color="black",shape="box"];614 -> 633[label="",style="solid", color="black", weight=3]; 615[label="absReal1 (Pos Zero) (not (EQ == LT))",fontsize=16,color="black",shape="box"];615 -> 634[label="",style="solid", color="black", weight=3]; 616[label="absReal1 (Neg (Succ vuz3200)) (not (LT == LT))",fontsize=16,color="black",shape="box"];616 -> 635[label="",style="solid", color="black", weight=3]; 617[label="absReal1 (Neg Zero) (not (EQ == LT))",fontsize=16,color="black",shape="box"];617 -> 636[label="",style="solid", color="black", weight=3]; 953[label="primMinusNatS (Succ vuz780) vuz79",fontsize=16,color="burlywood",shape="box"];1246[label="vuz79/Succ vuz790",fontsize=10,color="white",style="solid",shape="box"];953 -> 1246[label="",style="solid", color="burlywood", weight=9]; 1246 -> 963[label="",style="solid", color="burlywood", weight=3]; 1247[label="vuz79/Zero",fontsize=10,color="white",style="solid",shape="box"];953 -> 1247[label="",style="solid", color="burlywood", weight=9]; 1247 -> 964[label="",style="solid", color="burlywood", weight=3]; 954[label="primMinusNatS Zero vuz79",fontsize=16,color="burlywood",shape="box"];1248[label="vuz79/Succ vuz790",fontsize=10,color="white",style="solid",shape="box"];954 -> 1248[label="",style="solid", color="burlywood", weight=9]; 1248 -> 965[label="",style="solid", color="burlywood", weight=3]; 1249[label="vuz79/Zero",fontsize=10,color="white",style="solid",shape="box"];954 -> 1249[label="",style="solid", color="burlywood", weight=9]; 1249 -> 966[label="",style="solid", color="burlywood", weight=3]; 562[label="primRemInt (Pos vuz530) (Pos (Succ vuz5200))",fontsize=16,color="black",shape="box"];562 -> 585[label="",style="solid", color="black", weight=3]; 563[label="primRemInt (Pos vuz530) (Pos Zero)",fontsize=16,color="black",shape="box"];563 -> 586[label="",style="solid", color="black", weight=3]; 564[label="primRemInt (Pos vuz530) (Neg (Succ vuz5200))",fontsize=16,color="black",shape="box"];564 -> 587[label="",style="solid", color="black", weight=3]; 565[label="primRemInt (Pos vuz530) (Neg Zero)",fontsize=16,color="black",shape="box"];565 -> 588[label="",style="solid", color="black", weight=3]; 566[label="primRemInt (Neg vuz530) (Pos (Succ vuz5200))",fontsize=16,color="black",shape="box"];566 -> 589[label="",style="solid", color="black", weight=3]; 567[label="primRemInt (Neg vuz530) (Pos Zero)",fontsize=16,color="black",shape="box"];567 -> 590[label="",style="solid", color="black", weight=3]; 568[label="primRemInt (Neg vuz530) (Neg (Succ vuz5200))",fontsize=16,color="black",shape="box"];568 -> 591[label="",style="solid", color="black", weight=3]; 569[label="primRemInt (Neg vuz530) (Neg Zero)",fontsize=16,color="black",shape="box"];569 -> 592[label="",style="solid", color="black", weight=3]; 669[label="absReal1 (Integer (Pos (Succ vuz29000))) (not (primCmpInt (Pos (Succ vuz29000)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];669 -> 687[label="",style="solid", color="black", weight=3]; 670[label="absReal1 (Integer (Pos Zero)) (not (primCmpInt (Pos Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];670 -> 688[label="",style="solid", color="black", weight=3]; 671[label="absReal1 (Integer (Neg (Succ vuz29000))) (not (primCmpInt (Neg (Succ vuz29000)) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];671 -> 689[label="",style="solid", color="black", weight=3]; 672[label="absReal1 (Integer (Neg Zero)) (not (primCmpInt (Neg Zero) (Pos Zero) == LT))",fontsize=16,color="black",shape="box"];672 -> 690[label="",style="solid", color="black", weight=3]; 673[label="Integer (primRemInt vuz600 vuz590)",fontsize=16,color="green",shape="box"];673 -> 691[label="",style="dashed", color="green", weight=3]; 633[label="absReal1 (Pos (Succ vuz3200)) (not (GT == LT))",fontsize=16,color="black",shape="box"];633 -> 655[label="",style="solid", color="black", weight=3]; 634[label="absReal1 (Pos Zero) (not False)",fontsize=16,color="black",shape="box"];634 -> 656[label="",style="solid", color="black", weight=3]; 635[label="absReal1 (Neg (Succ vuz3200)) (not True)",fontsize=16,color="black",shape="box"];635 -> 657[label="",style="solid", color="black", weight=3]; 636[label="absReal1 (Neg Zero) (not False)",fontsize=16,color="black",shape="box"];636 -> 658[label="",style="solid", color="black", weight=3]; 963[label="primMinusNatS (Succ vuz780) (Succ vuz790)",fontsize=16,color="black",shape="box"];963 -> 975[label="",style="solid", color="black", weight=3]; 964[label="primMinusNatS (Succ vuz780) Zero",fontsize=16,color="black",shape="box"];964 -> 976[label="",style="solid", color="black", weight=3]; 965[label="primMinusNatS Zero (Succ vuz790)",fontsize=16,color="black",shape="box"];965 -> 977[label="",style="solid", color="black", weight=3]; 966[label="primMinusNatS Zero Zero",fontsize=16,color="black",shape="box"];966 -> 978[label="",style="solid", color="black", weight=3]; 585[label="Pos (primModNatS vuz530 (Succ vuz5200))",fontsize=16,color="green",shape="box"];585 -> 618[label="",style="dashed", color="green", weight=3]; 586 -> 418[label="",style="dashed", color="red", weight=0]; 586[label="error []",fontsize=16,color="magenta"];587[label="Pos (primModNatS vuz530 (Succ vuz5200))",fontsize=16,color="green",shape="box"];587 -> 619[label="",style="dashed", color="green", weight=3]; 588 -> 418[label="",style="dashed", color="red", weight=0]; 588[label="error []",fontsize=16,color="magenta"];589[label="Neg (primModNatS vuz530 (Succ vuz5200))",fontsize=16,color="green",shape="box"];589 -> 620[label="",style="dashed", color="green", weight=3]; 590 -> 418[label="",style="dashed", color="red", weight=0]; 590[label="error []",fontsize=16,color="magenta"];591[label="Neg (primModNatS vuz530 (Succ vuz5200))",fontsize=16,color="green",shape="box"];591 -> 621[label="",style="dashed", color="green", weight=3]; 592 -> 418[label="",style="dashed", color="red", weight=0]; 592[label="error []",fontsize=16,color="magenta"];687[label="absReal1 (Integer (Pos (Succ vuz29000))) (not (primCmpNat (Succ vuz29000) Zero == LT))",fontsize=16,color="black",shape="box"];687 -> 705[label="",style="solid", color="black", weight=3]; 688[label="absReal1 (Integer (Pos Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="box"];688 -> 706[label="",style="solid", color="black", weight=3]; 689[label="absReal1 (Integer (Neg (Succ vuz29000))) (not (LT == LT))",fontsize=16,color="black",shape="box"];689 -> 707[label="",style="solid", color="black", weight=3]; 690[label="absReal1 (Integer (Neg Zero)) (not (EQ == LT))",fontsize=16,color="black",shape="box"];690 -> 708[label="",style="solid", color="black", weight=3]; 691 -> 504[label="",style="dashed", color="red", weight=0]; 691[label="primRemInt vuz600 vuz590",fontsize=16,color="magenta"];691 -> 709[label="",style="dashed", color="magenta", weight=3]; 691 -> 710[label="",style="dashed", color="magenta", weight=3]; 655[label="absReal1 (Pos (Succ vuz3200)) (not False)",fontsize=16,color="black",shape="box"];655 -> 674[label="",style="solid", color="black", weight=3]; 656[label="absReal1 (Pos Zero) True",fontsize=16,color="black",shape="box"];656 -> 675[label="",style="solid", color="black", weight=3]; 657[label="absReal1 (Neg (Succ vuz3200)) False",fontsize=16,color="black",shape="box"];657 -> 676[label="",style="solid", color="black", weight=3]; 658[label="absReal1 (Neg Zero) True",fontsize=16,color="black",shape="box"];658 -> 677[label="",style="solid", color="black", weight=3]; 975 -> 943[label="",style="dashed", color="red", weight=0]; 975[label="primMinusNatS vuz780 vuz790",fontsize=16,color="magenta"];975 -> 983[label="",style="dashed", color="magenta", weight=3]; 975 -> 984[label="",style="dashed", color="magenta", weight=3]; 976[label="Succ vuz780",fontsize=16,color="green",shape="box"];977[label="Zero",fontsize=16,color="green",shape="box"];978[label="Zero",fontsize=16,color="green",shape="box"];618[label="primModNatS vuz530 (Succ vuz5200)",fontsize=16,color="burlywood",shape="triangle"];1250[label="vuz530/Succ vuz5300",fontsize=10,color="white",style="solid",shape="box"];618 -> 1250[label="",style="solid", color="burlywood", weight=9]; 1250 -> 637[label="",style="solid", color="burlywood", weight=3]; 1251[label="vuz530/Zero",fontsize=10,color="white",style="solid",shape="box"];618 -> 1251[label="",style="solid", color="burlywood", weight=9]; 1251 -> 638[label="",style="solid", color="burlywood", weight=3]; 619 -> 618[label="",style="dashed", color="red", weight=0]; 619[label="primModNatS vuz530 (Succ vuz5200)",fontsize=16,color="magenta"];619 -> 639[label="",style="dashed", color="magenta", weight=3]; 620 -> 618[label="",style="dashed", color="red", weight=0]; 620[label="primModNatS vuz530 (Succ vuz5200)",fontsize=16,color="magenta"];620 -> 640[label="",style="dashed", color="magenta", weight=3]; 621 -> 618[label="",style="dashed", color="red", weight=0]; 621[label="primModNatS vuz530 (Succ vuz5200)",fontsize=16,color="magenta"];621 -> 641[label="",style="dashed", color="magenta", weight=3]; 621 -> 642[label="",style="dashed", color="magenta", weight=3]; 705[label="absReal1 (Integer (Pos (Succ vuz29000))) (not (GT == LT))",fontsize=16,color="black",shape="box"];705 -> 724[label="",style="solid", color="black", weight=3]; 706[label="absReal1 (Integer (Pos Zero)) (not False)",fontsize=16,color="black",shape="box"];706 -> 725[label="",style="solid", color="black", weight=3]; 707[label="absReal1 (Integer (Neg (Succ vuz29000))) (not True)",fontsize=16,color="black",shape="box"];707 -> 726[label="",style="solid", color="black", weight=3]; 708[label="absReal1 (Integer (Neg Zero)) (not False)",fontsize=16,color="black",shape="box"];708 -> 727[label="",style="solid", color="black", weight=3]; 709[label="vuz600",fontsize=16,color="green",shape="box"];710[label="vuz590",fontsize=16,color="green",shape="box"];674[label="absReal1 (Pos (Succ vuz3200)) True",fontsize=16,color="black",shape="box"];674 -> 692[label="",style="solid", color="black", weight=3]; 675[label="Pos Zero",fontsize=16,color="green",shape="box"];676[label="absReal0 (Neg (Succ vuz3200)) otherwise",fontsize=16,color="black",shape="box"];676 -> 693[label="",style="solid", color="black", weight=3]; 677[label="Neg Zero",fontsize=16,color="green",shape="box"];983[label="vuz790",fontsize=16,color="green",shape="box"];984[label="vuz780",fontsize=16,color="green",shape="box"];637[label="primModNatS (Succ vuz5300) (Succ vuz5200)",fontsize=16,color="black",shape="box"];637 -> 659[label="",style="solid", color="black", weight=3]; 638[label="primModNatS Zero (Succ vuz5200)",fontsize=16,color="black",shape="box"];638 -> 660[label="",style="solid", color="black", weight=3]; 639[label="vuz5200",fontsize=16,color="green",shape="box"];640[label="vuz530",fontsize=16,color="green",shape="box"];641[label="vuz530",fontsize=16,color="green",shape="box"];642[label="vuz5200",fontsize=16,color="green",shape="box"];724[label="absReal1 (Integer (Pos (Succ vuz29000))) (not False)",fontsize=16,color="black",shape="box"];724 -> 741[label="",style="solid", color="black", weight=3]; 725[label="absReal1 (Integer (Pos Zero)) True",fontsize=16,color="black",shape="box"];725 -> 742[label="",style="solid", color="black", weight=3]; 726[label="absReal1 (Integer (Neg (Succ vuz29000))) False",fontsize=16,color="black",shape="box"];726 -> 743[label="",style="solid", color="black", weight=3]; 727[label="absReal1 (Integer (Neg Zero)) True",fontsize=16,color="black",shape="box"];727 -> 744[label="",style="solid", color="black", weight=3]; 692[label="Pos (Succ vuz3200)",fontsize=16,color="green",shape="box"];693[label="absReal0 (Neg (Succ vuz3200)) True",fontsize=16,color="black",shape="box"];693 -> 711[label="",style="solid", color="black", weight=3]; 659[label="primModNatS0 vuz5300 vuz5200 (primGEqNatS vuz5300 vuz5200)",fontsize=16,color="burlywood",shape="box"];1252[label="vuz5300/Succ vuz53000",fontsize=10,color="white",style="solid",shape="box"];659 -> 1252[label="",style="solid", color="burlywood", weight=9]; 1252 -> 678[label="",style="solid", color="burlywood", weight=3]; 1253[label="vuz5300/Zero",fontsize=10,color="white",style="solid",shape="box"];659 -> 1253[label="",style="solid", color="burlywood", weight=9]; 1253 -> 679[label="",style="solid", color="burlywood", weight=3]; 660[label="Zero",fontsize=16,color="green",shape="box"];741[label="absReal1 (Integer (Pos (Succ vuz29000))) True",fontsize=16,color="black",shape="box"];741 -> 761[label="",style="solid", color="black", weight=3]; 742[label="Integer (Pos Zero)",fontsize=16,color="green",shape="box"];743[label="absReal0 (Integer (Neg (Succ vuz29000))) otherwise",fontsize=16,color="black",shape="box"];743 -> 762[label="",style="solid", color="black", weight=3]; 744[label="Integer (Neg Zero)",fontsize=16,color="green",shape="box"];711[label="`negate` Neg (Succ vuz3200)",fontsize=16,color="black",shape="box"];711 -> 728[label="",style="solid", color="black", weight=3]; 678[label="primModNatS0 (Succ vuz53000) vuz5200 (primGEqNatS (Succ vuz53000) vuz5200)",fontsize=16,color="burlywood",shape="box"];1254[label="vuz5200/Succ vuz52000",fontsize=10,color="white",style="solid",shape="box"];678 -> 1254[label="",style="solid", color="burlywood", weight=9]; 1254 -> 694[label="",style="solid", color="burlywood", weight=3]; 1255[label="vuz5200/Zero",fontsize=10,color="white",style="solid",shape="box"];678 -> 1255[label="",style="solid", color="burlywood", weight=9]; 1255 -> 695[label="",style="solid", color="burlywood", weight=3]; 679[label="primModNatS0 Zero vuz5200 (primGEqNatS Zero vuz5200)",fontsize=16,color="burlywood",shape="box"];1256[label="vuz5200/Succ vuz52000",fontsize=10,color="white",style="solid",shape="box"];679 -> 1256[label="",style="solid", color="burlywood", weight=9]; 1256 -> 696[label="",style="solid", color="burlywood", weight=3]; 1257[label="vuz5200/Zero",fontsize=10,color="white",style="solid",shape="box"];679 -> 1257[label="",style="solid", color="burlywood", weight=9]; 1257 -> 697[label="",style="solid", color="burlywood", weight=3]; 761[label="Integer (Pos (Succ vuz29000))",fontsize=16,color="green",shape="box"];762[label="absReal0 (Integer (Neg (Succ vuz29000))) True",fontsize=16,color="black",shape="box"];762 -> 776[label="",style="solid", color="black", weight=3]; 728[label="primNegInt (Neg (Succ vuz3200))",fontsize=16,color="black",shape="triangle"];728 -> 745[label="",style="solid", color="black", weight=3]; 694[label="primModNatS0 (Succ vuz53000) (Succ vuz52000) (primGEqNatS (Succ vuz53000) (Succ vuz52000))",fontsize=16,color="black",shape="box"];694 -> 712[label="",style="solid", color="black", weight=3]; 695[label="primModNatS0 (Succ vuz53000) Zero (primGEqNatS (Succ vuz53000) Zero)",fontsize=16,color="black",shape="box"];695 -> 713[label="",style="solid", color="black", weight=3]; 696[label="primModNatS0 Zero (Succ vuz52000) (primGEqNatS Zero (Succ vuz52000))",fontsize=16,color="black",shape="box"];696 -> 714[label="",style="solid", color="black", weight=3]; 697[label="primModNatS0 Zero Zero (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];697 -> 715[label="",style="solid", color="black", weight=3]; 776[label="`negate` Integer (Neg (Succ vuz29000))",fontsize=16,color="black",shape="box"];776 -> 796[label="",style="solid", color="black", weight=3]; 745[label="Pos (Succ vuz3200)",fontsize=16,color="green",shape="box"];712 -> 1034[label="",style="dashed", color="red", weight=0]; 712[label="primModNatS0 (Succ vuz53000) (Succ vuz52000) (primGEqNatS vuz53000 vuz52000)",fontsize=16,color="magenta"];712 -> 1035[label="",style="dashed", color="magenta", weight=3]; 712 -> 1036[label="",style="dashed", color="magenta", weight=3]; 712 -> 1037[label="",style="dashed", color="magenta", weight=3]; 712 -> 1038[label="",style="dashed", color="magenta", weight=3]; 713[label="primModNatS0 (Succ vuz53000) Zero True",fontsize=16,color="black",shape="box"];713 -> 731[label="",style="solid", color="black", weight=3]; 714[label="primModNatS0 Zero (Succ vuz52000) False",fontsize=16,color="black",shape="box"];714 -> 732[label="",style="solid", color="black", weight=3]; 715[label="primModNatS0 Zero Zero True",fontsize=16,color="black",shape="box"];715 -> 733[label="",style="solid", color="black", weight=3]; 796[label="Integer (primNegInt (Neg (Succ vuz29000)))",fontsize=16,color="green",shape="box"];796 -> 826[label="",style="dashed", color="green", weight=3]; 1035[label="vuz53000",fontsize=16,color="green",shape="box"];1036[label="vuz52000",fontsize=16,color="green",shape="box"];1037[label="vuz53000",fontsize=16,color="green",shape="box"];1038[label="vuz52000",fontsize=16,color="green",shape="box"];1034[label="primModNatS0 (Succ vuz98) (Succ vuz99) (primGEqNatS vuz100 vuz101)",fontsize=16,color="burlywood",shape="triangle"];1258[label="vuz100/Succ vuz1000",fontsize=10,color="white",style="solid",shape="box"];1034 -> 1258[label="",style="solid", color="burlywood", weight=9]; 1258 -> 1067[label="",style="solid", color="burlywood", weight=3]; 1259[label="vuz100/Zero",fontsize=10,color="white",style="solid",shape="box"];1034 -> 1259[label="",style="solid", color="burlywood", weight=9]; 1259 -> 1068[label="",style="solid", color="burlywood", weight=3]; 731 -> 618[label="",style="dashed", color="red", weight=0]; 731[label="primModNatS (primMinusNatS (Succ vuz53000) Zero) (Succ Zero)",fontsize=16,color="magenta"];731 -> 750[label="",style="dashed", color="magenta", weight=3]; 731 -> 751[label="",style="dashed", color="magenta", weight=3]; 732[label="Succ Zero",fontsize=16,color="green",shape="box"];733 -> 618[label="",style="dashed", color="red", weight=0]; 733[label="primModNatS (primMinusNatS Zero Zero) (Succ Zero)",fontsize=16,color="magenta"];733 -> 752[label="",style="dashed", color="magenta", weight=3]; 733 -> 753[label="",style="dashed", color="magenta", weight=3]; 826 -> 728[label="",style="dashed", color="red", weight=0]; 826[label="primNegInt (Neg (Succ vuz29000))",fontsize=16,color="magenta"];826 -> 840[label="",style="dashed", color="magenta", weight=3]; 1067[label="primModNatS0 (Succ vuz98) (Succ vuz99) (primGEqNatS (Succ vuz1000) vuz101)",fontsize=16,color="burlywood",shape="box"];1260[label="vuz101/Succ vuz1010",fontsize=10,color="white",style="solid",shape="box"];1067 -> 1260[label="",style="solid", color="burlywood", weight=9]; 1260 -> 1069[label="",style="solid", color="burlywood", weight=3]; 1261[label="vuz101/Zero",fontsize=10,color="white",style="solid",shape="box"];1067 -> 1261[label="",style="solid", color="burlywood", weight=9]; 1261 -> 1070[label="",style="solid", color="burlywood", weight=3]; 1068[label="primModNatS0 (Succ vuz98) (Succ vuz99) (primGEqNatS Zero vuz101)",fontsize=16,color="burlywood",shape="box"];1262[label="vuz101/Succ vuz1010",fontsize=10,color="white",style="solid",shape="box"];1068 -> 1262[label="",style="solid", color="burlywood", weight=9]; 1262 -> 1071[label="",style="solid", color="burlywood", weight=3]; 1263[label="vuz101/Zero",fontsize=10,color="white",style="solid",shape="box"];1068 -> 1263[label="",style="solid", color="burlywood", weight=9]; 1263 -> 1072[label="",style="solid", color="burlywood", weight=3]; 750 -> 552[label="",style="dashed", color="red", weight=0]; 750[label="primMinusNatS (Succ vuz53000) Zero",fontsize=16,color="magenta"];750 -> 767[label="",style="dashed", color="magenta", weight=3]; 751[label="Zero",fontsize=16,color="green",shape="box"];752 -> 554[label="",style="dashed", color="red", weight=0]; 752[label="primMinusNatS Zero Zero",fontsize=16,color="magenta"];753[label="Zero",fontsize=16,color="green",shape="box"];840[label="vuz29000",fontsize=16,color="green",shape="box"];1069[label="primModNatS0 (Succ vuz98) (Succ vuz99) (primGEqNatS (Succ vuz1000) (Succ vuz1010))",fontsize=16,color="black",shape="box"];1069 -> 1073[label="",style="solid", color="black", weight=3]; 1070[label="primModNatS0 (Succ vuz98) (Succ vuz99) (primGEqNatS (Succ vuz1000) Zero)",fontsize=16,color="black",shape="box"];1070 -> 1074[label="",style="solid", color="black", weight=3]; 1071[label="primModNatS0 (Succ vuz98) (Succ vuz99) (primGEqNatS Zero (Succ vuz1010))",fontsize=16,color="black",shape="box"];1071 -> 1075[label="",style="solid", color="black", weight=3]; 1072[label="primModNatS0 (Succ vuz98) (Succ vuz99) (primGEqNatS Zero Zero)",fontsize=16,color="black",shape="box"];1072 -> 1076[label="",style="solid", color="black", weight=3]; 767[label="vuz53000",fontsize=16,color="green",shape="box"];1073 -> 1034[label="",style="dashed", color="red", weight=0]; 1073[label="primModNatS0 (Succ vuz98) (Succ vuz99) (primGEqNatS vuz1000 vuz1010)",fontsize=16,color="magenta"];1073 -> 1077[label="",style="dashed", color="magenta", weight=3]; 1073 -> 1078[label="",style="dashed", color="magenta", weight=3]; 1074[label="primModNatS0 (Succ vuz98) (Succ vuz99) True",fontsize=16,color="black",shape="triangle"];1074 -> 1079[label="",style="solid", color="black", weight=3]; 1075[label="primModNatS0 (Succ vuz98) (Succ vuz99) False",fontsize=16,color="black",shape="box"];1075 -> 1080[label="",style="solid", color="black", weight=3]; 1076 -> 1074[label="",style="dashed", color="red", weight=0]; 1076[label="primModNatS0 (Succ vuz98) (Succ vuz99) True",fontsize=16,color="magenta"];1077[label="vuz1000",fontsize=16,color="green",shape="box"];1078[label="vuz1010",fontsize=16,color="green",shape="box"];1079 -> 618[label="",style="dashed", color="red", weight=0]; 1079[label="primModNatS (primMinusNatS (Succ vuz98) (Succ vuz99)) (Succ (Succ vuz99))",fontsize=16,color="magenta"];1079 -> 1081[label="",style="dashed", color="magenta", weight=3]; 1079 -> 1082[label="",style="dashed", color="magenta", weight=3]; 1080[label="Succ (Succ vuz98)",fontsize=16,color="green",shape="box"];1081 -> 943[label="",style="dashed", color="red", weight=0]; 1081[label="primMinusNatS (Succ vuz98) (Succ vuz99)",fontsize=16,color="magenta"];1081 -> 1083[label="",style="dashed", color="magenta", weight=3]; 1081 -> 1084[label="",style="dashed", color="magenta", weight=3]; 1082[label="Succ vuz99",fontsize=16,color="green",shape="box"];1083[label="Succ vuz99",fontsize=16,color="green",shape="box"];1084[label="Succ vuz98",fontsize=16,color="green",shape="box"];} ---------------------------------------- (735) TRUE